南派的三叔 发表于 2008-4-18 10:38

关于矩阵太大导致求解刚度和质量矩阵时出错的问题

我编了一段简单的程序,求解一个质量矩阵和一个刚度矩阵。两个矩阵都能求解,但是用刚度矩阵除以质量矩阵就报错。有人热心指正小弟感激不尽。
syms x y db dv dc hb hv hc b L;
y=x/L;
%求Nub与其转置地积分q
Nub=;
T='*;
q=int(T,0,1);
%质量矩阵
=db*hb*b*q;
Nw=;
%对Nw求导
x=sym('x');
dNw=diff(Nw)
%求Nw与其转置的积分qq
TT=Nw'*Nw;
qq=int(TT,0,1);
%质量矩阵
=db*hb*b*qq;
=;
=-(hv+hb/2+hc/2)*dNw++hv*;
=-(hb+hc)/2*dNw++hv/2+;
%质量矩阵&
qqq=int('*,0,1);
=dv*hv*b*qqq;
=dv*hv*b*qq;
%求Nuc的转置与其的积分qqqq
TTT='*;
qqqq=int(TTT,0,1);
%质量矩阵&
=dc*hc*b*qqqq;
=dc*hc*b*qq;
%得到总的质量矩阵
=+++++;




syms Ib Ic C11d C11e G
%求刚度矩阵
syms Eb C11E C11D Ic;
%Nub求导
x=sym('x');
dNub=diff();
%dNub的积分
kkkk='*;
p=int(kkkk,x,0,1);
Kub=Eb*b*hb*p;

a=diff(Nw);
aa=diff(a);
pp=int(aa'*aa,x,0,1);
Kwb=Eb*Ib*pp;

dNuc=diff(Nuc);
p=int(dNuc'*dNuc,x,0,1);
Kuc=C11e*b*hc*p;

Kwc=C11d*Ic*pp;

p=int(Nb'*Nb);
Kbv=G*b*hv*p;

K=Kub+Kwb+Kuc+Kwc+Kbv;


K/M

[ 本帖最后由 eight 于 2008-4-18 10:39 编辑 ]

sigma665 发表于 2008-4-18 12:59

回复 楼主 的帖子

报什么错误

sogooda 发表于 2008-4-18 14:07

试试LR分解之后再进行运算

lq12131010 发表于 2008-4-18 14:23

为什么要除啊..........................................................................................

南派的三叔 发表于 2008-4-18 15:58

除了之后求特征值。报错说矩阵太大。

sogooda 发表于 2008-4-18 21:51

看起来你这个好像是一个动力学问题啊,能不能考虑一下自由度缩减?

gh688 发表于 2008-4-18 22:50

原帖由 南派的三叔 于 2008-4-18 15:58 发表 http://www.chinavib.com/forum/images/common/back.gif
除了之后求特征值。报错说矩阵太大。
这和矩阵大小没关系,肯定是报错M矩阵奇异了,不会是矩阵太大。不要用除号,误差太大了。

sigma665 发表于 2008-4-19 13:11

原帖由 gh688 于 2008-4-18 22:50 发表 http://www.chinavib.com/forum/images/common/back.gif

这和矩阵大小没关系,肯定是报错M矩阵奇异了,不会是矩阵太大。不要用除号,误差太大了。

请问怎么才提高精度?

gh688 发表于 2008-4-19 13:40

原帖由 sigma665 于 2008-4-19 13:11 发表 http://www.chinavib.com/forum/images/common/back.gif


请问怎么才提高精度?
呵呵,我看他求用K/M,其实在matlab中就是按照K*inv(M)计算的,这种问题求逆的话不太好啊,傻瓜式办法直接eig(-M,K)要好一点,不用求逆,个人观点

sigma665 发表于 2008-4-19 14:02

回复 9楼 的帖子

我是问有什么方法可以代替/
我也用到那个,做出来的结果不对,是不是这个问题

gh688 发表于 2008-4-19 14:15

原帖由 sigma665 于 2008-4-19 14:02 发表 http://www.chinavib.com/forum/images/common/back.gif
我是问有什么方法可以代替/
我也用到那个,做出来的结果不对,是不是这个问题
如果只是求特征值这一步的话,那上面的命令可以替代,如果程序中别的计算方面要用/,还真的不知道有别的东西能代替它

sigma665 发表于 2008-4-19 14:22

回复 11楼 的帖子

多谢了
页: [1]
查看完整版本: 关于矩阵太大导致求解刚度和质量矩阵时出错的问题