2024-05-14 09:55:04 发布
网友
我试着解下面的方程
def f(u1, u2, u3, u4, a11, a16, a12, a66, a26, a22): return a11*u4-2*a16*u3+(2*a12+a66)*u2-2*a26*u1+a22
其中u1到{}是复杂变量,我希望f() = 0的根和{}到{}是需要传递给函数的参数(floats)。我已经看过scipy.optimize.fsolve()和{},但都不能让这两种方法都正常工作。在
u1
f() = 0
floats
scipy.optimize.fsolve()
你有一个四变量的线性方程,所以你没有唯一的解。在C^4中,解的超平面上的任何一点都会使函数为零。在
如果没有其他约束,唯一能做的就是把其中一个U变量表示为其他变量的线性函数。在
在共解完全可以做到:
In [1]: solve('a11*u4-2*a16*u3+(2*a12+a66)*u2-2*a26*u1+a22', 'u1') Out[1]: ⎡a₁₁⋅u₄ + 2⋅a₁₂⋅u₂ - 2⋅a₁₆⋅u₃ + a₂₂ + a₆₆⋅u₂⎤ ⎢───────────────────────────────────────────⎥ ⎣ 2⋅a₂₆ ⎦
scipy的数值程序不会收敛,因为解形成了一个超平面。在
你有一个四变量的线性方程,所以你没有唯一的解。在C^4中,解的超平面上的任何一点都会使函数为零。在
如果没有其他约束,唯一能做的就是把其中一个U变量表示为其他变量的线性函数。在
在共解完全可以做到:
scipy的数值程序不会收敛,因为解形成了一个超平面。在
相关问题 更多 >
编程相关推荐