多元方程的求解问题(符号求解)
我想用matlab里的矩阵符号运算功能解出这组四元一次方程的解。但是解不出来。求各位大侠 指点一下。谢谢啦。程序如下: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');
D=A\B
运行后,提示出错:
??? Error using ==> maple
at offset 9, missing operator or `;`
Error in ==> sym.sym>char2sym at 394
if str2num(char(maple('nops',['{' S '}']))) > 1
Error in ==> sym.sym at 92
S = char2sym(x);
是B矩阵有问题吗?该如何解决呢?求高人指点啊
本帖最后由 TDF 于 2011-8-20 10:16 编辑
怎么没人回答啊:'( 本帖最后由 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=;但无论那一种方式, 进入D=A\B;时就一直busy了, 其实个人并不意外, 那麼多参数那麼复杂式子!
个人以为可以数值就儘量数值!
还有标题请明确些!
好的,多谢前辈指点啊。其实后来我自己又运算了下。结果是出来了,就是有号几十页。一看到就很头疼啊。
页:
[1]