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

作者&投稿:城瞿 (若有异议请与网页底部的电邮联系)
matlab解方程出现复数~

用solve()函数求解其方程,可以得到一个实数解和九四个虚数解。
x=0.00072670001175922463023233095120785
另一种方法,可以用fsolve()函数
>> fun=@(x)10^(9500*x+1.63)-10^10.35+2*10^(8700*x+3.72);
>> x=fsolve(fun,0)
x=0.0007267

>> syms x y
>> s=solve('x+y=20+15*i','x*y=10+2*i')
s =
x: [2x1 sym]
y: [2x1 sym]
>> s.x,s.y
ans =
(592*i + 135)^(1/2)/2 + 10 + (15*i)/2
10 - (592*i + 135)^(1/2)/2 + (15*i)/2
ans =
10 - (592*i + 135)^(1/2)/2 + (15*i)/2
(592*i + 135)^(1/2)/2 + 10 + (15*i)/2

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


常见矩阵方程由来及matlab解法
解Lyapunov方程的MATLAB工具是lyap(A,Q),连续和离散版本分别为lyap和dlyap。它们为我们提供了一种方法,找到满足特定条件的矩阵X,确保系统的稳定性。而Riccati方程的旅程则源于对二次型函数的优化控制。连续Riccati方程的出现是为了最小化J = x'Px + x'Rx,通过状态反馈控制K。无穷积分的巧妙处理,最...

用matlab解矩阵方程
1、加减法的命令很简单,直接用加或者减号就可以了。如:c=a+bd=a-b。2、一般乘法:c=a*b,要求a的列数等于b的行数。如果a,b是一般的向量,如a=[1,2,3] b=[3,4,5]点积:dot(a,b), 叉积:cross(a,b)卷积:conv(a,b)。3、x=a\\b如果ax=b,则 x=a\\b是矩阵方程的解。...

matlab求解矩阵方程组
题主的问题可以用for双循环语句和solve(或vpasolve)函数求出FI(i)、GI(i)的值。实现方法:k=1;for i=1:4 for j=1:4 syms FI0、GI0 [FI0,GI0]=vpasolve(FI0*dGI(i,j)-GI0*dSI(i,j)==0,FI0*dSI(i,j)-GI0*dGI(i,j)==0)FI(k)=FI0,GI(k)=GI0 k=k+1;end end ...

matlab如何解矩阵方程?
1. 设Ax = b,求x,(x和b都是向量)则:x = A\\b 就这么简单。想不出更复杂的方法了。2. 你上面的看起来是个齐次方程,但是因为b1 b2 b3已知,可以移到等号另一边;再把V3=V4整理到矩阵方程里或者干脆从方程中去掉V4,就可以用上面方法解了。

怎么用MATLAB求解这个二次矩阵方程
a1=[-10 1;-20 3];a2=[1 3;5 2];syms p1 p2 p3 p4 p;p=[p1 p2;p3 p4]二次矩阵方程是:p^2*a2+p*a1+a0=0;eq=p^2*a2+p*a1+a0;[p1,p2,p3,p4]=solve(eq(1,1),eq(1,2),eq(2,1),eq(2,2),p1,p2,p3,p4);p1=double(p1);p2=double(p2);p3=double(p3);p4=...

MATLAB里面关于solve解矩阵方程的问题
a=[1 0;0 2];b=[1;3];syms x1 x2;y=a*[x1;x2]+b;s=solve(y(1),y(2),'x1','x2');s.x1 %w2值 s.x2 %w2值

matlab求矩阵Ax=b的解,A为3阶魔方阵,b是(3×1)全1列向量。用rref,inv\/...
>> A = magic(3)A = 8 1 6 3 5 7 4 9 2 >> b = ones(3,1)>> x1 = inv(A)*b x1 = 0.0667 0.0667 0.0667 >> x2 = A\\b x2 = 0.0667 0.0667 0.0667 >> [R,jb] = rref(A)jb = 1 2 3 矩阵 是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。

急急急!用matlab解矩阵方程组 -1.05t(1)+0.81t(2)-1.032=0 t(i-1...
最后一个方程没给全吧,我就当最后是个零来给程序。clc clear all A=zeros(11);B=zeros(11,1);A(1,1)=-1.05;A(1,2)=0.81;A(11,10)=0.81;A(11,11)=-0.91;B(1)=1.032;for ii=2:10 A(ii,ii-1)=1;A(ii,ii+1)=1;A(ii,ii)=-2;end t=A\\B ...

matlab求矩阵方程的数值解
你的问题提得好像有点问题,两个变量三个方程,用solve函数直接解只能是无解,而用fsolve函数求解,则得到解是令人费解的(不恒等)。如你把问题转换成优化解,即已知P值,求B、L、N值。到可以用lsqnonlin()函数求得。当P=[30;20;40]时,B=142.57°,L=47.86°,N=[1.9012;5.5885;-4...

matlab中矩阵方程
Matlab中提供命令lu对矩阵进行LU分解,如果是稀疏矩阵,则可使用命令lunic对矩阵进行LU分解。你的4元一次方程若表示成:AX=f 则A=[a,b,c,d],X=[x,y,z,u]',在Matlab中输入 >>A=[...]; %%把a,b,c,d都输入 >>f=[...]; %%输入你的f >>X=A\\f; %%列出线性方程 >>X...

孝义市18735029929: matlab中,解方程得到复数解,用什么语法可以只取解的实数部分? -
毓钱抗病: 复数解一般情况下没有用途!!real(),可以取得复数的实部 复数的倒数你不能理解吗?

孝义市18735029929: 用 matlab解微分方程组 意外地出现了 复数的结果 -
毓钱抗病: 1、p1~p8的具体数据是多少?2、程序中有多处用到sqrt、acos函数,都可能导致出现复数.3、对于这种不知道在哪个步骤出现复数的情况,最直接的做法是设置断点,跟踪程序的运行.

孝义市18735029929: 用solve解了MATLAB方程组后,如何剔除那些复数解保留实数解啊? -
毓钱抗病:[答案] 设你的解是[x,y](x,y都是向量),那么可以: A = x == real(x); x(A) x(A)就是所有实数根.第一行是在进行逻辑判断,如果是实数就取1,不是就取0,第二行matlab在调用向量x的元素的时候,遇到A=1就取,=0就不取.同理对y你也可以这么做.最后令x=x(A),y=y...

孝义市18735029929: 如何用MATLAB解答含有复数的方程组
毓钱抗病: 如果你的 a=[1,1,1;0,2i,2;3+4i,0,2]; b=[10,0,0]; x=a\b'

孝义市18735029929: 矩阵的特征值是唯一的么为什么我用matlab求复矩阵的特征值是4个复数? -
毓钱抗病:[答案] 特征值不唯一 与你矩阵的秩有关 我刚翻了 线性代数的书 特征值可以使复数,当特征值为复数时,特征向量为复向量因为特征方程在复数范围内恒有解,其个数为方程的次数(重根按重数计算),因此N阶矩阵在复数范围内恒有N个...

孝义市18735029929: matlab怎么解复数方程
毓钱抗病: 那样就无解了 因为复数方程实际是两个方程,实部一个,虚部一个,要有两个未知数才确定有解 你给的这个m是不能找到符合的x的 syms x m S21 y=(x+1/x)*sinh(j*x*m)+2*cosh(j*x*m)-2/S21; y=simple(y) y = i*(x+1/x)*sin(x*m)+2*cos(x*m)-2/S21 S...

孝义市18735029929: 如何用matlab解复数方程,比如解方程x^2= - 1,x^4= - 2最好是给出那个命令的格式,网友dlddmm的方法固然不错,但是如果我出一个隐函数你还能解出来吗 -
毓钱抗病:[答案] solve('x^2=-1'); 你使用solve函数就能解出来了,任意的方程都可以

孝义市18735029929: matlab解参数方程问题(含复数) -
毓钱抗病: 可以写成一个函数,求输入参数 a b,相应的x和y,如 a=[1,2]; b=[2,3]; [X,Y] = EquationC1xy(a,b);下面是简单代码:function [X,Y] = EquationC1xy(a,b) na=length(a); nb=length(b); if na~= nb return end X=zeros(1,na); Y=zeros(1,na); syms x y for n=1:na s=solve(a(n)+x==1i,b(n)+3i-y==x); X(n)=s.x; Y(n)=s.y; end

孝义市18735029929: matlab编程解复数方程
毓钱抗病: > syms x y >> s=solve('x+y=20+15*i','x*y=10+2*i') s = x: [2x1 sym] y: [2x1 sym] >> s.x,s.y ans = (592*i + 135)^(1/2)/2 + 10 + (15*i)/2 10 - (592*i + 135)^(1/2)/2 + (15*i)/2 ans = 10 - (592*i + 135)^(1/2)/2 + (15*i)/2 (592*i + 135)^(1/2)/2 + 10 + (15*i)/2

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网