如何求符号矩阵的特征向量和特征值
如果A是一个6*6符号矩阵,怎么求特征值和特征向量?用eig命令出不来。谢谢!
[ 本帖最后由 eight 于 2008-1-22 20:33 编辑 ] 把你的矩阵发上来 A =
[-172418001613650068612276415123836371/126765060022822940149670320537600-281598380762179646017/147573952589676412928000*Ku1,32436549376337979455552872848285/4951760157141521099596496896,2609432633820326107389/360287970189639680,57530830847342842585882386592541550309/8112963841460668169578900514406400, 73307493021474301918380386406956644511/20769187434139310514121985316880384+279063995335320029202847/1475739525896764129280000000*Ku1,-1354477678519499343754979707045247529/405648192073033408478945025720320+27315042933931425663649/59029581035870565171200000*Ku1]
[-21722105204396473642839578503701757/7922816251426433759354395033600-183706216937329412267/46116860184273879040000*Ku1, 311373990188635568032750966537065/158456325028528675187087900672,
10504248104940279636951/720575940379279360, 1135173971487463427574298206210052003/507060240091291760598681282150400,46295287827180113278430746879348424757/6490371073168534535663120411525120+182052860984893447556597/461168601842738790400000000*Ku1,-110494010266873135878859117942805937/101412048018258352119736256430080+17819503042920952989899/18446744073709551616000000*Ku1]
是一个6×6的,关于ku1的矩阵...
[ 本帖最后由 ChaChing 于 2010-5-29 23:52 编辑 ] 能不能先给ku1赋值啊
这个也太长了...:@L
[ 本帖最后由 ChaChing 于 2010-5-29 23:56 编辑 ] 解出的A是关于ku1的矩阵,ku1是变量。理论上求出来的A的特征值和特征向量应该是ku1的函数,只是eig命令求不出来,会出错。不知道有没有别的办法求一下?
如果先赋值的话,那得到的特征值和特征向量就是常数了,怎么和ku1联系呢?被这个问题困扰好久了......
[ 本帖最后由 ChaChing 于 2010-5-29 23:53 编辑 ] 还有eigs,qz等
最后就是要一长串表达式?
ku1代表某个物理意义,总该给个值吧, 要不,长长的一串,看着都头晕
可以加一个外循环,每次变化都有一个ku1值
[ 本帖最后由 ChaChing 于 2010-5-29 23:55 编辑 ] eig函数只能求解已知方阵的特征向量和特征值,方阵中有没有被赋值的变量,肯定出错啊。
[ 本帖最后由 ChaChing 于 2010-5-29 23:57 编辑 ] ku1代表的是某一个方向上的刚度。
如果用eigs,会提示出错:
Error using ==> fcnchk
If FUN is a MATLAB object, it must have an feval method.
这个提示不太明白什么意思:@L
qz好像不适合符号矩阵
外循环的办法不知道怎么做呢?我不太会。能不能详细说一下啊,谢谢
初值ku1=170000
[ 本帖最后由 ChaChing 于 2010-5-30 00:08 编辑 ] 这个好象比较复杂,要把符号变量变成数字, 好象用到subs 或者 inline等
我也不懂,你搜索下论坛,解决了回来共享下
如果一开始就不是符号变量,那就容易多了
[ 本帖最后由 ChaChing 于 2010-5-30 00:12 编辑 ] 如果一开始不是符号变量的话,那求到特征值能和这个变量联系起来吗?怎么联系呢?
[ 本帖最后由 ChaChing 于 2010-5-30 00:13 编辑 ] 刚刚查了下,VPA好象可以
你再看看帮助
可以把这个变量作为外循环啊
你把你的程序发上来,
[ 本帖最后由 ChaChing 于 2010-5-30 00:45 编辑 ] m=400; Ixx=19.84; Iyy=30.66; Izz=23.54; Ixy=9.79; Ixz=-0.11; Iyz=0.42;
M=
x1=-0.087; y1=0.2425; z1=-0.0991;
x2=-0.087; y2=-0.24148; z2=-0.0991;
x3=-0.654; y3=0.00052; z3=-0.2733;
E1=
B1=
syms Ku1 r
Kv1=170000; Kw1=800000; K1=
k1=E1'*B1'*K1*B1*E1
E2=;
B2=B1; Ku2=132000; Kv2=129000; Kw2=800000;
K2=; k2=E2'*B2'*K2*B2*E2;
E3=;
B3=B1; Ku3=213000; Kv3=293000; Kw3=362000;
K3=; k3=E3'*B3'*K3*B3*E3
K=k1+k2+k3; A=(inv(M))*K
vpa是把矩阵A精确表示了...
[ 本帖最后由 ChaChing 于 2010-5-30 00:18 编辑 ] m=400; Ixx=19.84; Iyy=30.66; Izz=23.54; Ixy=9.79; Ixz=-0.11; Iyz=0.42;
M=;
x1=-0.087; y1=0.2425; z1=-0.0991;
x2=-0.087; y2=-0.24148; z2=-0.0991;
x3=-0.654; y3=0.00052; z3=-0.2733;
E1=;
B1=;
%
Ku1=linspace(170000,500000,100); lenda=zeros(6,length(Ku1));
for i=1:length(Ku1)
Kv1=170000; Kw1=800000; K1=;
k1=E1'*B1'*K1*B1*E1;
E2=;
B2=B1; Ku2=132000; Kv2=129000; Kw2=800000;
K2=; k2=E2'*B2'*K2*B2*E2;
E3=;
B3=B1; Ku3=213000; Kv3=293000; Kw3=362000;
K3=; k3=E3'*B3'*K3*B3*E3;
K=k1+k2+k3; A=(inv(M))*K;
lenda(1:6,i)=eig(A);
end这样,特征值放在lenda的列,每个ku1对应相应的lenda列向量
循环的范围,你自己改吧
[ 本帖最后由 ChaChing 于 2010-5-30 00:43 编辑 ] 非常感谢!
只是这样体现的是ku1取一个值,对应的有一个A的特征向量吧。体现不出特征向量和ku1的关系式吧?
不过我找了半天,到现在都没有发现能够求解符号特征值的。
[ 本帖最后由 ChaChing 于 2010-5-30 00:24 编辑 ] 特征向量没算,是特征值.
1对6,不好给出曲线关系
[ 本帖最后由 ChaChing 于 2010-5-30 00:25 编辑 ]
页:
[1]
2