如何用SciPy解这个方程

2024-04-19 17:42:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在MathCad中,它看起来像这样:

enter image description here

如何使用python(scipy或sympy)解决它?在

也许像这样?在

def fun(n):
    x, y, z = n
    return -0.7353 + 3.306 * np.absolute(0.706 - x) + 1.247 * np.absolute(0.7210 - y) - (0.89072 - 1.4829*x + 0.23239*y - z)
scipy.optimize.fsolve(fun, [1,1,1])

Tags: returndefnpscipyoptimizesympyfunabsolute
1条回答
网友
1楼 · 发布于 2024-04-19 17:42:51

代码

重要的是压缩。最小化基础方法)是误差的二次惩罚(这是双方的差异)。当然还有其他的方法,但是要注意限制目标。在

from scipy.optimize import minimize

fun = lambda x: ((-0.7353 + 3.306 * (abs(0.706 - x[0])) + 1.247 * (abs(0.721 - x[1]))) - \
                (0.89072 - 1.4829 * x[0] + 0.23239 * x[1] - x[2]))**2
x0 = [1, 1, 1]
res = minimize(fun, x0, tol=1e-6)
print(res)

结果

^{pr2}$

如评论中所述,没有唯一的解决方案。你的起点和选择的算法决定了你得到的是什么样的解。在

唯一相关的部分是目标,它应该接近零!

相关问题 更多 >