matlab解矩阵方程出现复数解怎么处理?

就是方程BX=W,其中B是系数方程,X为未知数方程(只关心其中的x),W是结果。但是W中的一些元素也含有所求的未知数x。用matlab解算后,出来的x是复数,可是这个问题... 就是方程BX=W,其中B是系数方程,X为未知数方程(只关心其中的x),W是结果。但是W中的一些元素也含有所求的未知数x。用matlab解算后,出来的x是复数,可是这个问题应该计算出的是个效率,求教如何处理。
程序如下:
syms x q1 q2 q3 q4 q5 q6 q7 q0 t1 t2 t3 t4 t5 t6 t7 r1 r2 r3 r4 r5 r6 r7 w1 w2 w3 w4 w5 w6 w7;
q1=2315.6;q2=2538.5;q3=2454.1;q4=2507.1;q5=2643.2;q6=2364.2;q7=2176.4;
t1=74.6;t2=150.0;t3=152.2;t4=95.8;t5=58.1;t6=262.5;t7=46.5;
r1=0;r2=314.8;r3=87.2;r4=0;r5=107.8;r6=270.0;r7=0;
q0=3467.3-999.7;
w1=121.2;w2=332.4;w3=562.8;w4=703;w5=835.1;w6=664.9+492.9*(1-x);w7=746.1+492.9*(1-x);w0=1050.3+492.9*(1-x);
B=[q1,0,0,0,0,0,0,0
t1,q2,0,0,0,0,0,0
t1,r2,q3,0,0,0,0,0
t1,r2,r3,q4,0,0,0,0
t1,t2,t3,t4,q5,0,0,0
t1,t2,t3,t4,r5,q6,0,0
t1,t2,t3,t4,r5,r6,q7,0
t1,t2,t3,t4,t5,t6,t7,q0]
w=[w1,w2,w3,w4,w5,w6,w7,w0]
W=w';
X=B\W
xx=X(8,1)

这里只关心X的最后一个x,可是计算结果出来相当与
x=191610536285339098065135873835367/361237693807866500754639020008960-35590238661/204788706224*conj(x)

这样再怎么解出一个实数x啊
那个未知矩阵X中只关心X(8,1),把它当作要求解x,其他的都不需要管
W中的x就是X(8,1)
多谢对程序的改动,当初图省事没有好好写
展开
 我来答
化学工程
2008-03-22 · TA获得超过8900个赞
知道大有可为答主
回答量:2212
采纳率:80%
帮助的人:3330万
展开全部
w6=664.9+492.9*(1-x);
w7=746.1+492.9*(1-x);
w0=1050.3+492.9*(1-x);

这三个x是X的第几个啊?x=X(1)?x=X(2)?...X(8)?

另外,这是一个差分方程吧?改成矩阵形式更节约计算量。

clc;clear
syms x
q=[2315.6 2538.5 2454.1 2507.1 2643.2 2364.2 2176.4];
t=[74.6 150.0 152.2 95.8 58.1 262.5 46.5];
r=[0 314.8 87.2 0 107.8 270.0 0];
q0=3467.3-999.7;
W=[121.2 332.4 562.8 703 835.1 664.9+492.9*(1-x) 746.1+492.9*(1-x) 1050.3+492.9*(1-x)]';
B=[q(1),0,0,0,0,0,0,0
t(1),q(2),0,0,0,0,0,0
t(1),r(2),q(3),0,0,0,0,0
t(1),r(2),r(3),q(4),0,0,0,0
t(1),t(2),t(3),t(4),q(5),0,0,0
t(1),t(2),t(3),t(4),r(5),q(6),0,0
t(1),t(2),t(3),t(4),r(5),r(6),q(7),0
t(1),t(2),t(3),t(4),t(5),t(6),t(7),q0]
X=B\W
xx=X(8,1)
x=solve(xx-'x')

结果:
X =

303/5789
19016598/146953765
761453564286/3606392346865
23079006483390064/90415862528252415
682816759124986612691/2389872078346767833280
1787446664834280741154441/4035811119733877508171840-4929/23642*conj(x)
20354893342091707908945918751/43917696604944055043925962880-51611559/257272244*conj(x)
191610536285339098065135873835367/361237693807866500754639020008960-35590238661/204788706224*conj(x)

xx =

191610536285339098065135873835367/361237693807866500754639020008960-35590238661/204788706224*conj(x)

x =

.45189330084894868203093008862120
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式