首页 > 解决方案 > 我正在尝试编写一些关于简单非线性回归的代码

问题描述

我试图在pycharm中运行一个关于非线性回归的简单程序,但失败了。原因是:

ValueError: Can't calculate derivative wrt x**2.

这是我的代码。

import sympy as sy

object_c = 2.13
x = sy.symbols('x')
a = x ** 2
b = sy.ln(a)
c = sy.sqrt(b)
x_val = 2

da_dx = sy.diff(a, x)
db_da = sy.diff(b, a)
dc_db = sy.diff(c, b)
dc_dx = sy.diff(c, x)

fc = sy.lambdify((b,), dc_db)
c_val = fc(x_val)
dc = c_val - object_c

while dc > 0.001:
    db = dc / dc_db
    da = db / db_da
    dx = da / da_dx

    x_val = x_val - dx
    c_val = fc(x_val)
    dc = c_val - object_c

print('done!')
print('final x is %f' % x_val)

标签: pythonsympynon-linear-regression

解决方案


推荐阅读