关于矩阵计算结果没有计算的情况。
mathematica吧
全部回复
仅看楼主
level 1
长歌吟💤 楼主
新手刚刚上手mathematica,在计算的时候发现矩阵求逆或者求特征值时,结果就和给的输入一样,没有计算,这是我哪里编错了还是个什么情况。
类似这几个图:
程序如下:
nl = 13
Nl = EYmod*h
Dl = EYmod*h^3/12
A2 = k22*G*h*(1 + h^2/(12*R^2))
A1 = Nl/R + Dl/(R^3)
u = 0
lK2 = 12.3
kl2 = K2*Dl*b/(2*R^3)
kl1 = kl2
kl3 = kl2
lk2 = lK2*Dl*b/(2*R^3)
lk1 = lk2
y1 = 2*Pi/nl
y2 = 0
y3 = y1
y0 = 0
nnd = 3
en = 1
m1c = 0
m2c = 0
m1s = 0
m2s = 0
cosm1 = 0
sinm1 = 0
cosm2 = 0
sinm2 = 0
m1c0 = 0
m1s0 = 0
m2c0 = 0
m2s0 = 0
Cn1 = -(nnd^2*A1 + A2/R)
Cn2 = nnd*(A1 + A2/R)
Cn3 = nnd^2*Dl/(R^2) + A2
Cn4 = -(A1 + nnd^2*A2/R)
Cn5 = nnd*(Dl/(R^2) + A2)
m1c1 = kl1*Cos[m*y1]*Cos[nnd*y1]
m1c2 = kl2*Cos[m*y2]*Cos[nnd*y2]
m1c3 = kl3*Cos[m*y3]*Cos[nnd*y3]
m2c1 = kl1*Sin[m*y1]*Cos[nnd*y1]
m2c2 = kl2*Sin[m*y2]*Cos[nnd*y2]
m2c3 = kl3*Sin[m*y3]*Cos[nnd*y3]
m1s1 = kl1*Cos[m*y1]*Sin[nnd*y1]
m1s2 = kl2*Cos[m*y2]*Sin[nnd*y2]
m1s3 = kl3*Cos[m*y3]*Sin[nnd*y3]
m2s1 = kl1*Sin[m*y1]*Sin[nnd*y1]
m2s2 = kl2*Sin[m*y2]*Sin[nnd*y2]
m2s3 = kl3*Sin[m*y3]*Sin[nnd*y3]
m1c = m1c + m1c1 + m1c2 + m1c3
m2c = m2c + m2c1 + m2c2 + m2c3
m1s = m1s + m1s1 + m1s2 + m1s3
m2s = m2s + m2s1 + m2s2 + m2s3
Cosm1 = Cos[m*y1]
Sinm1 = Sin[m*y1]
Cosm2 = Cos[m*y2]
Sinm2 = Sin[m*y2]
m1c0 = m1c0 + lk1*Cos[m*y0]*Cos[nnd*y0]
m1s0 = m1s0 + lk1*Cos[m*y0]*Sin[nnd*y0]
m2c0 = m2c0 + lk1*Sin[m*y0]*Cos[nnd*y0]
m2s0 = m2s0 + lk1*Sin[m*y0]*Sin[nnd*y0]
m1 = {{-p*h*R, 0, 0, 0, -p*h^3/12, 0},
{0, -p*h*R, 0, 0, 0, -p*h^3/12},
{0, 0, -p*h*R, 0, 0, 0},
{0, 0, 0, -p*h*R, 0, 0},
{-p*h^3/12, 0, 0, 0, -p*h^3*R/12, 0},
{0, -p*h^3/12, 0, 0, 0, -p*h^3*R/12}} // MatrixForm
M1 = {{p*h*R, 0, 0, 0, p*h^3/12, 0, 0, 0, 0, 0},
{0, p*h*R, 0, 0, 0, p*h^3/12, 0, 0, 0, 0},
{0, 0, p*h*R, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, p*h*R, 0, 0, 0, 0, 0, 0},
{p*h^3/12, 0, 0, 0, p*h^3*R/12, 0, 0, 0, 0, 0},
{0, p*h^3/12, 0, 0, 0, p*h^3*R/12, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, -ma, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, -ma, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, -ma, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, -M}} // MatrixForm
k1 = {{Cn1, 0, 0, Cn2, Cn3, 0},
{0, Cn1, -Cn2, 0, 0, Cn3},
{0, -Cn2, Cn4, 0, 0, Cn5},
{Cn2, 0, 0, Cn4, -Cn5, 0},
{Cn3, 0, 0, -Cn5, -Cn3*R, 0},
{0, Cn3, Cn5, 0, 0, -Cn3*R}} // MatrixForm
k2 = {{0, 0, m1c*u/(Pi*b), m2c*u/(Pi*b), 0, 0},
{0, 0, m1s*u/(Pi*b), m2s*u/(Pi*b), 0, 0},
{0, 0, -(m1c + m1c0)/(Pi*b), -(m2c + m2c0)/(Pi*b), 0, 0},
{0, 0, -(m1s + m1s0)/(Pi*b), -(m2s + m2s0)/(Pi*b), 0, 0},
{0, 0, -m1c*u*h/(2*Pi*b), -m2c*u*h/(2*Pi*b), 0, 0},
{0, 0, -m1s*u*h/(2*Pi*b), -m2s*u*h/(2*Pi*b), 0, 0}} // MatrixForm
k3 = {{-kl1*Cos[nnd*y1]*u/(Pi*b), -kl2*Cos[nnd*y2]*u/(Pi*b), -kl3*
Cos[nnd*y3]*u/(Pi*b), 0},
{-kl1*Sin[nnd*y1]*u/(Pi*b), -kl2*Sin[nnd*y2]*u/(Pi*b), -kl3*
Sin[nnd*y3]*u/(Pi*b), 0},
{kl1*Cos[nnd*y1]/(Pi*b), kl2*Cos[nnd*y2]/(Pi*b),
kl3*Cos[nnd*y3]/(Pi*b), lk1*Cos[nnd*y0]/(Pi*b)},
{kl1*Sin[nnd*y1]/(Pi*b), kl2*Sin[nnd*y2]/(Pi*b),
kl3*Sin[nnd*y3]/(Pi*b), lk1*Sin[nnd*y0]/(Pi*b)},
{kl1*Cos[nnd*y1]*u*h/(2*Pi*b), kl2*Cos[nnd*y2]*u*h/(2*Pi*b),
kl3*Cos[nnd*y3]*u*h/(2*Pi*b), 0},
{kl1*Sin[nnd*y1]*u*h/(2*Pi*b), kl2*Sin[nnd*y2]*u*h/(2*Pi*b),
kl3*Sin[nnd*y3]*u*h/(2*Pi*b), 0}} // MatrixForm
k411 = {{Cn1, 0, m1c*u/(Pi*b), Cn2 + m2c*u/(Pi*b), Cn3, 0},
{0, Cn1, -Cn2 + m1s*u/(Pi*b), m2s*u/(Pi*b), 0, Cn3},
{0, -Cn2, Cn4 + -(m1c + m1c0)/(Pi*b), -(m2c + m2c0)/(Pi*b), 0, Cn5},
{Cn2, 0, -(m1s + m1s0)/(Pi*b), Cn4 - (m2s + m2s0)/(Pi*b), -Cn5, 0},
{Cn3, 0, -m1c*u*h/(2*Pi*b), -Cn5 - m2c*u*h/(2*Pi*b), -Cn3*R, 0},
{0, Cn3, Cn5 - m1s*u*h/(2*Pi*b), -m2s*u*h/(2*Pi*b), 0, -Cn3*R}} //
MatrixForm
k4 = {{Cn1, 0, m1c*u/(Pi*b), Cn2 + m2c*u/(Pi*b), Cn3,
0, -kl1*Cos[nnd*y1]*u/(Pi*b), -kl2*Cos[nnd*y2]*u/(Pi*b), -kl3*
Cos[nnd*y3]*u/(Pi*b), 0},
{0, Cn1, -Cn2 + m1s*u/(Pi*b), m2s*u/(Pi*b), 0,
Cn3, -kl1*Sin[nnd*y1]*u/(Pi*b), -kl2*Sin[nnd*y2]*u/(Pi*b), -kl3*
Sin[nnd*y3]*u/(Pi*b), 0},
{0, -Cn2, Cn4 + -(m1c + m1c0)/(Pi*b), -(m2c + m2c0)/(Pi*b), 0, Cn5,
kl1*Cos[nnd*y1]/(Pi*b), kl2*Cos[nnd*y2]/(Pi*b),
kl3*Cos[nnd*y3]/(Pi*b), lk1*Cos[nnd*y0]/(Pi*b)},
{Cn2, 0, -(m1s + m1s0)/(Pi*b), Cn4 - (m2s + m2s0)/(Pi*b), -Cn5, 0,
kl1*Sin[nnd*y1]/(Pi*b), kl2*Sin[nnd*y2]/(Pi*b),
kl3*Sin[nnd*y3]/(Pi*b), lk1*Sin[nnd*y0]/(Pi*b)},
{Cn3, 0, -m1c*u*h/(2*Pi*b), -Cn5 - m2c*u*h/(2*Pi*b), -Cn3*R, 0,
kl1*Cos[nnd*y1]*u*h/(2*Pi*b), kl2*Cos[nnd*y2]*u*h/(2*Pi*b),
kl3*Cos[nnd*y3]*u*h/(2*Pi*b), 0},
{0, Cn3, Cn5 - m1s*u*h/(2*Pi*b), -m2s*u*h/(2*Pi*b), 0, -Cn3*R,
kl1*Sin[nnd*y1]*u*h/(2*Pi*b), kl2*Sin[nnd*y2]*u*h/(2*Pi*b),
kl3*Sin[nnd*y3]*u*h/(2*Pi*b), 0}} // MatrixForm
k5 = {{0, 0, -kl1*Cosm1, -kl1*Sinm1, 0, 0, 2*kl1, 0, 0, 0},
{0, 0, -kl2*Cosm2, -kl2*Sinm2, 0, 0, 0, 2*kl2, 0, 0},
{0, 0, -kl3*Cosm1, -kl3*Sinm1, 0, 0, 0, 0, 2*kl3, 0},
{0, 0, -lk1*Cosm2, -lk1*Sinm2, 0, 0, 0, 0, 0, lk1 + lk2}} //
MatrixForm
K = Join[k4, k5, 2]
A = Inverse[-M1]*K
Eigenvalues[A]
2020年06月29日 08点06分 1
level 1
长歌吟💤 楼主
刚刚那位大神哪去了。。EYMOD是我设置的一个变量,MMA的变量设置是不能大写吗?
2020年06月29日 08点06分 3
刚开始我以为你想用mod函数来着.的确,MMA的变量首字母尽量不要大写避免和内置函数冲突.(附:变量赋值这些不需要回显的操作可以在语句后面加个英文分号避免作为结果输出
2020年06月29日 08点06分
level 9
把M1表达式后面的// MatrixForm删掉就好了
具体原因我也不清楚,可能和吧主之前有提到过的使用MatrixForm后表达式会被嵌套一层东西有关
2020年06月29日 08点06分 4
谢谢了,没想到还能有这种操作。。。
2020年06月29日 08点06分
我终于找到了吧主讨论这个问题的帖子了:https://tieba.baidu.com/p/5685104328
2020年06月29日 08点06分
@0笑叹浮生若梦0 学习了。
2020年06月29日 09点06分
1