Python中方程的复根

2024-05-14 09:55:04 发布

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

我试着解下面的方程

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()和{},但都不能让这两种方法都正常工作。在


Tags: 函数参数returndef方程a16u1a12
1条回答
网友
1楼 · 发布于 2024-05-14 09:55:04

你有一个四变量的线性方程,所以你没有唯一的解。在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的数值程序不会收敛,因为解形成了一个超平面。在

相关问题 更多 >

    热门问题