|
本帖最后由 ChaChing 于 2011-8-23 00:05 编辑
我使用R2009a试试, 报错讯息并不一样!
??? Error using ==> sym.mldivide at 28
First dimensions must agree.
A是4*4sym, 而B是1*1sym, 怎能D=A\B?
引起个人好奇的是, LZ的A,B写法类似, 为何A可以顺利转换, 而B不行!?
所以特地以debug模式切入看个究竟?
发现其中逻辑竟然是以逗号(,)判断, 所以B的写法无逗号当然无法正常转换成4*1 ! 使用逗号再转置即可正常转换成4*1- clc; clear
- A=sym('-e^2*a^2-1,2*c*e*a+2*f*d*e*a^2,-f*a^2,-2*f*d*e*a^2;-2*c*e+2*f*d*e*a^2,e^2*a^2-f*a^2+1,2*d*f*e*a^2,-f*a^2;-a^2,-a^3*e*d,-e^2*a^2+a^2+t/pi*e^2*a^2*(j+k),2*d*e*a^2+t/pi*(h+i)*e^2*a^2;2*d*e*a^2,-a^2,-2*d*e*a^2-t/pi*e^2*a^2*(h+i),-e^2*a^2+a^2+t/pi*e^2*a^2*(m+n)');
- B=sym('0,b,-t/pi*e^2*a^2*l,t/pi*e^2*a^2*o'); B=B';
复制代码
其实个人比较习惯使用syms- clc; clear; syms a b c d e f h j k l m n o t
- A=[-e^2*a^2-1,2*c*e*a+2*f*d*e*a^2,-f*a^2,-2*f*d*e*a^2;-2*c*e+2*f*d*e*a^2,e^2*a^2-f*a^2+1,2*d*f*e*a^2,-f*a^2;-a^2,-a^3*e*d,-e^2*a^2+a^2+t/pi*e^2*a^2*(j+k),2*d*e*a^2+t/pi*(h+i)*e^2*a^2;2*d*e*a^2,-a^2,-2*d*e*a^2-t/pi*e^2*a^2*(h+i),-e^2*a^2+a^2+t/pi*e^2*a^2*(m+n)];
- B=[0;b;-t/pi*e^2*a^2*l;t/pi*e^2*a^2*o];
复制代码 但无论那一种方式, 进入D=A\B;时就一直busy了, 其实个人并不意外, 那麼多参数那麼复杂式子!
个人以为可以数值就儘量数值!
还有标题请明确些!
|
|