-5

我正在尝试解决以下等式,

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

u1tou4是我想要根的复杂变量,f() = 0to是a11需要传递给函数a66的 arguments( )。floats我已经看过scipy.optimize.fsolve()sympy无法让任何一种方法正常工作。

4

1 回答 1

3

您有四个变量的一个线性方程,因此您没有唯一的解决方案。C^4 中解的超平面中的任何点都会使您的函数为零。

如果您没有任何其他约束,您唯一可以做的就是将其中一个 U 变量表示为其余变量的明显线性函数。

sympy.solve 将完全做到这一点:

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 的数值例程不会收敛,因为解决方案形成了一个超平面。

于 2012-04-16T20:18:11.000 回答