我想用python验证我的计算,但我不知道如何解决这个系统,当变量也出现在方程的右侧时。我试着解下面的方程:k=f,其中:
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解决这个问题感到有点困惑。
发布于 2020-12-14 04:41:06
用更一般的方式,你的问题可以用公式表示出来。
A x=B x+c⇒(A-B) x=c
但是,如果你写下这8个方程,你会注意到,在两个方程中,你只有两个基本未知数,对剩下的6个未知数没有依赖性,所以你可以立即求解这2个方程,接下来你会注意到,剩下的6个未知数中的每一个都只出现在一个方程中,所以如果你用两个基本的ex-unknowns替换,你就是在直接计算其余的未知数。
让我们创建一个更简单的示例…
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。
https://stackoverflow.com/questions/65279741
复制相似问题