matlab求矩阵方程的数值解
你的solve函数里面已经是字符,没有必要再用eval
如果你要精确解,就直接把x0=eval(a)删掉,结果就是a,,但是表达式很复杂,你可以加个double(a)就可以得到数值解了
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是矩阵方程的解。x=b/a如果xa=b, 则x=b/a是矩阵方程的解。
4、转置时,矩阵的第一行变成第一列,第二行变成第二列,。。。x=a。
5、求逆:要求矩阵为方阵。这在矩阵运算中很常用。x=inv(a)。这几种方式都可以解矩阵方程。
你的问题提得好像有点问题,两个变量三个方程,用solve函数直接解只能是无解,而用fsolve函数求解,则得到解是令人费解的(不恒等)。
如你把问题转换成优化解,即已知P值,求B、L、N值。到可以用lsqnonlin()函数求得。
当P=[30;20;40]时,B=142.57°,L=47.86°,N=[1.9012;5.5885;-4.8164]。
matlab求解带符号的矩阵方程
syms k m x w2 K=[...]M=[...]X=[...]delta=K-w2*M)*X;s=solve(delta(1),delta(2),delta(3),delta(4),'w2','x');s.w2 %w2值 s.x %x值
怎么用MATLAB求解这个二次矩阵方程
clear a0=[2 3;6 4];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(...
怎样用MATLAB求解矩阵?
注意:也可先进行列约减再进行行约减。3、画“盖0”线,即画最少的线将矩阵三中的0全部覆盖,得矩阵四;操作技巧:从含0最多的行或列开始画“盖0”线。4、数据转换。若“盖0”线的数目等于矩阵的维数则跳过此步,若“盖0”线的数目小于矩阵的维数则进行数据转换。本题属于后者,则直接求最优...
Matlab求矩阵方程的维数
A= [1,2;3,4;5,6];B = size(A);B 的值为3 2 。3是A的行数,2是A的列数
matlab 矩阵方程组求解问题
用s=solve('A*x=B')是得不到s值的。应该使用下列命令 s=A\\B %矩阵除法,得到最小二乘近似解。
急求matlab编程求矩阵方程解
楼主说的不可能,下面是我修改了一下,A 是4行6列 A=[4,3,2,1;3,4,1,2;1,2,4,3;6,5,6,9;2,3,4,5;12,2,1,6]';b=[1,2,3,4]';x=b\\A;disp(x)计算结果:>> A=[4,3,2,1;3,4,1,2;1,2,4,3;6,5,6,9;2,3,4,5;12,2,1,6]';b=[1,2,3,4]';x=...
MATLAB 程序中的立方如何表示
用 ^ 这个符号加上要求方次的数就行了,比如a^3表示a的立方;a^2表示a的平方;a^(10)表示a的10次方.
matlab求矩阵方程组
[A00 - 1,A10; A01,R*A2 - 1; e,*inv(I-R)*e];b = [0; 0; 1];x = A\\b; \/\/ Matlab自动求解线性方程组的语句,没记错的话,对于这种超定方程组,应该也能自动搞定,算出最小二乘解 \/\/ 代码结束 最后,求出来的x是个2*1的向量,两个分量分别对应pi0和pi1 你试试吧 ...
MATLAB里面关于solve解矩阵方程的问题
warning:explicit solution could not be found.这句话的意思是不能找到精确解,也就是matlab里面solve函数的内部算法对于你这个方程组不适用,所以你这个方程组不能用solve求解 而且,观察你的三个方程,显然是无解的,第一式除以第二式可以得出exp(k0)=533.34\/534.48 第二式除以第三式可以得出 exp...
matlab中怎样求矩阵的
在MATLAB中,求解矩阵的逆操作可以通过使用`inv()`函数来实现。这个函数用于计算输入矩阵的逆矩阵。让我们看一个具体的例子来说明。假设我们有一个矩阵A,其元素为1到9的子集,定义为:&A = [1:3; 4:6; 7:9]&A = 1 2 3 &4 5 6 &7 8 9 要计算矩阵A的逆,我们只需键入`inv(A)`并...
艾盛复方: 程序:展开全部 A=[1 2 3;1 3 1; 0 1 2];B=[1 0; 0 1;-1 0];X=(A+2)\B%化简矩阵方程.AX=B对应X=A\B.XA=B对应X=B/A结果:X =6.0000 -0.2500-3.0000 0.5000-1.0000 -0.2500
博望区19192265831: matlab解矩阵方程求教啊 - ?
艾盛复方: 直接弄个高斯列主元 消去法就是了e68a84e8a2ade799bee5baa6e79fa5e9819331333335316435 function X=Gauss(A,B) n=length(B); X=zeros(n,1); c=zeros(1,n); d1=0 for i=1:n-1max=abs(A(i,i));m=i;for j=i+1:nif max<abs(A(j,i))max=abs(A(j,i...
博望区19192265831: 急求matlab编程求矩阵方程解 - ?
艾盛复方: %楼主说的不可能,下面是我修改了一下,A 是4行6列1 2 3 4A=[4,3,2,1;3,4,1,2;1,2,4,3;6,5,6,9;2,3,4,5;12,2,1,6]'; b=[1,2,3,4]'; x=b\A; disp(x) 计算结果: 1 2 3 4 5>> A=[4,3,2,1;3,4,1,2;1,2,4,3;6,5,6,9;2,3,4,5;12,2,1,6]'; b=[1,2,3,4]'; x=b\A; disp(x)0.66670.73330.96672.33331.33331.4333
博望区19192265831: matlab求方程数值解 - ?
艾盛复方: >> syms a1 a2 c1 c2 %以下的值你自己改一下 aa1=1; cc1=2; aa2=3; cc2=4; [x5,y5]=solve('y5=a1*x5+c1','y5=a2*x5+c2','x5','y5'); xx5=subs(subs(subs(subs(x5,a1,aa1),a2,aa2),c1,cc1),c2,cc2) yy5=subs(subs(subs(subs(y5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)%%%%%subs(表达式,变量,变量的值),就是将表达式里面的变量,用变量的值代进去.
博望区19192265831: 用matlab解方程组的数值解,急 - ?
艾盛复方: 解对初值很敏感, 需要提供初值试了试,当初值取很大时解收敛于V=0.072,R=35.622,C=1.2618
博望区19192265831: matlab解方程组的数值解.. - ?
艾盛复方: 出错原因是,fzero()的初值x0选择不对.x0应该取0 k=fzero('10^x-64233.265306122*x',0) 但其计算误差也比较大. 建议你使用solve()求解.即 >>syms R k >>[R,k]=solve(R-0.35*10^(k/1.1),R^2-14306.5*k); >>R=double(R),k=double(k) >>0.35*10^(k/1.1) %验算 >>sqrt(14306.5*k) %验算 运行结果 k = 1.55688153855924e-05 R = 0.350011406533846
博望区19192265831: 求大神用matlab求方程的数值解 - ?
艾盛复方: 程序:syms f y=sqrt(2*(e/4+p/(2*x)-(m^2-1)/(8*x^2)-W/8*x)); int(f,x,下限,上限);OK了.注:一曝晒龙=W 纯手打,望采纳,谢谢
博望区19192265831: matlab求解矩阵方程组矩阵A(8行9列)矩阵X(8行1列)矩阵B(8行1列)每个值都为0AX=B,就是AX=0,矩阵A已知,求X用matlab怎么解 - ?
艾盛复方:[答案] 先将xP=0两边取转置,得P'x'=0,求出x'再转置回来求出x. 当矩阵方程P'x'=0,rank(P)=r
博望区19192265831: matlab如何解矩阵方程AX=b,A为3*3矩阵,b为3*1矩阵,X为3*1矩阵, - ?
艾盛复方:[答案] X=b乘以A的逆,A的逆可以用inv(A)解出
博望区19192265831: matlab矩阵方程的求解 - ?
艾盛复方: 因为m≠M 所以 U=pinv(C)*A 或用lu分解 [P,Q]=lu(C) U=Q\(P\A)