首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中求解8变量8方程线性方程组?

如何在python中求解8变量8方程线性方程组?
EN

Stack Overflow用户
提问于 2020-12-14 03:28:22
回答 1查看 69关注 0票数 0

我想用python验证我的计算,但我不知道如何解决这个系统,当变量也出现在方程的右侧时。我试着解下面的方程:k=f,其中:

代码语言:javascript
复制
K = (10**-7)*np.array([[ 5.21250000e-01,  2.04471348e-17, -5.21250000e-01,
         4.17000000e-01, -5.21250000e-01, -5.55111512e-17,
         5.21250000e-01, -4.17000000e-01],
       [ 2.04471348e-17,  2.08500000e-01,  8.34000000e-01,
        -2.08500000e-01, -8.32667268e-17, -2.08500000e-01,
        -8.34000000e-01,  2.08500000e-01],
       [-5.21250000e-01,  8.34000000e-01,  3.85725000e+00,
        -1.25100000e+00,  5.21250000e-01, -8.34000000e-01,
        -3.85725000e+00,  1.25100000e+00],
       [ 4.17000000e-01, -2.08500000e-01, -1.25100000e+00,
         8.54850000e+00, -4.17000000e-01,  2.08500000e-01,
         1.25100000e+00, -8.54850000e+00],
       [-5.21250000e-01, -1.11022302e-16,  5.21250000e-01,
        -4.17000000e-01,  4.89975000e+00, -1.25100000e+00,
        -4.89975000e+00,  1.66800000e+00],
       [-6.93889390e-17, -2.08500000e-01, -8.34000000e-01,
         2.08500000e-01, -1.25100000e+00,  8.96550000e+00,
         2.08500000e+00, -8.96550000e+00],
       [ 5.21250000e-01, -8.34000000e-01, -3.85725000e+00,
         1.25100000e+00, -4.89975000e+00,  2.08500000e+00,
         8.23575000e+00, -2.50200000e+00],
       [-4.17000000e-01,  2.08500000e-01,  1.25100000e+00,
        -8.54850000e+00,  1.66800000e+00, -8.96550000e+00,
        -2.50200000e+00,  1.73055000e+01]])

u.T = np.array([0, 0, 0, u_2y, 0, u_3y, 0, 0])

f.T = np.array([r1x, r1y, r2x, 0, r3x, -15, r4x, r4y-15])

我正在尝试解决u_2y,u_3y,r1x,r1y,r2x,r3x,r4x,r4y。到目前为止,我还没有看到任何右侧有变量的示例,所以我对如何使用sicpy.linalg.solve解决这个问题感到有点困惑。

EN

回答 1

Stack Overflow用户

发布于 2020-12-14 04:41:06

用更一般的方式,你的问题可以用公式表示出来。

A x=B x+c⇒(A-B) x=c

但是,如果你写下这8个方程,你会注意到,在两个方程中,你只有两个基本未知数,对剩下的6个未知数没有依赖性,所以你可以立即求解这2个方程,接下来你会注意到,剩下的6个未知数中的每一个都只出现在一个方程中,所以如果你用两个基本的ex-unknowns替换,你就是在直接计算其余的未知数。

让我们创建一个更简单的示例…

代码语言:javascript
复制
a11 a12 a13   x1   b1
a21 a22 a23 · x2 = b2
a31 a32 a33   00   b3+x3

从前两个方程式中你可以得到

{x1,x2} = inv(a11 a12;a21 a22)·{b1 b2}

现在x1和x2是已知的,您可以在最后一个等式中替换

x3 = a31·x1 + a32·x2 - b3。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65279741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档