python - 我正在尝试编写一些关于简单非线性回归的代码
问题描述
我试图在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)
解决方案
推荐阅读
- ios - 如何在选择器参数Swift之后添加函数参数
- php - PHP反转一个字节并打印它
- c++ - 如果派生类对象调用基类函数,会修改哪个类的静态变量?
- java - 如何使用与休眠的多对一关系将泛型类型用于超类
- vba - 图书馆图书查找器 - 替换为突出显示的字符串自身
- python - 修改 Python 堆栈
- heroku - Heroku - 您的帐户无权访问 my-new-app
- sass - 将值附加到 sass mixin 中的属性
- javascript - 从 Promise 返回 CSV 数据
- apache-kafka - Spring Cloud Stream - Kafka 活页夹