用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是矩阵方程的解。x=b/a如果xa=b, 则x=b/a是矩阵方程的解。
4、转置时,矩阵的第一行变成第一列,第二行变成第二列,。。。x=a。
5、求逆:要求矩阵为方阵。这在矩阵运算中很常用。x=inv(a)。这几种方式都可以解矩阵方程。
用matlab解矩阵方程,可以用左除法和逆矩阵法求解(这种方法适应n×n系数矩阵)。
方法一:x=a\(-b)
方法二:x=inv(a)*(-b)
例如:
>> a =[0.8147 0.6324 0.9575 0.9572; 0.9058 0.0975 0.9649 0.4854; 0.1270 0.2785 0.1576 0.8003; 0.9134 0.5469 0.9706 0.1419]
>> b =[0.4218;0.9157;0.7922; 0.9595];
>> x=inv(a)*(-b)
>> x=a\(-b)
运行结果
答:题主的问题可以用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 ...
答:这相当于线性方程组的第三行。所以相当于:// 代码如下 a = [a00 - 1,a10;a01,r*a2 - 1;e,*inv(i-r)*e];b = [0;0;1];x = a\b;// matlab自动求解线性方程组的语句,没记错的话,对于这种超定方程组,应该也能自动搞定,算出最小二乘解 // 代码结束 最后,求出来的x是个2...
答:在matlab中,如果a是可逆矩阵 ax=b的解是a左除b,即 x=a\b xa=b的解是a右除b, 即x=b/a。具体到这里:a,b都是可逆矩阵,x=(a\c)/b
答:参考代码:参数定义m1 = 1; m2 = 2; m3 = 3;k1 = 4; k2 = 5; k3 = 6;c1 = 7; c2 = 8; c3 = 9;qy = 10;微分方程k = [k1 -k1 0; -k1 k1 k2 -k2; 0 -k2 k2 k3];c = [c1 -c1 0; -c1 c1 c2 -c2; 0 -c2 c2 c3]dy = @(t,y)[y(4:6); (-k*y(...
...d、u和a都是6*6的矩阵,求u,用matlab怎么算啊?求大神指教~~~_百度...
答:像这样的方程,如果有唯一解,就应该是u=0。我采用的做法是,把u写成36x1的向量,把矩阵方程改写成b*u=0的形式,其中b为36x36矩阵,由d和a生成。生成测试数据 n = 6;d = rand(n, n);a = rand(n, n);构造系数矩阵 n2 = n * n;m = zeros(n2, n2);for i = 1 : n m( (i-...
答:对于线性方程组ax=b,可以利用左除运算符“\”求解:x=a\b 例如,对上面的问题,源程序如下:a=[1 2 1;2 1 -2;3 -4 2];b=[1 3 9]';x=a\b 结果为:x = 2.0270 -0.6216 0.2162 即为x、y、z的值
答:你把y当成自变量,画图,可以方便从y=-1:.1:1。发现x取值,最大是0.2602。所以可以很明显,发现只能取0.1803 和 0.2067 所以你的程序只用写一个循环加判断值,即小于0.2602即可。调用solve函数 解出0.1882847702315369927482666845352和-0.22384699275570656092042225557401 其实你这个表达式还是有问题的,...
答:用matlab解方程组的常用方法有:1、如是线性方程组,可以①用矩阵除法 x=a\b(或 x=inv(a)*b) %a为线性方程组系数矩阵,b为常数向量,inv(a)为系数矩阵的逆矩阵;也可以②用solve()函数命令,得到解析值或数值解 solve(表达式1,表达式2,。。。,表达式n,未知变量1,未知变量2,。。。
答:1. 设ax = b,求x,(x和b都是向量)则:x = a\b 就这么简单。想不出更复杂的方法了。2. 你上面的看起来是个齐次方程,但是因为b1 b2 b3已知,可以移到等号另一边;再把v3=v4整理到矩阵方程里或者干脆从方程中去掉v4,就可以用上面方法解了。
答:2、上面线性方程组可以表示为矩阵的形式,如下图所示:3、采用矩阵除法的方法求解相信方程组,具体计算代码及结果如下如所示:4、采用solve指令的一般代数方程解法,具体计算代码及结果如下如所示:教程结束,以上就是关于如何用matlab求解线性方程组的符号解?用matlab解符号方程组方法介绍,是不是很简单呢...
15942745629&&matlab如何解矩阵方程ax=b,a为3*3矩阵,b为3*1矩阵,x为3*1矩阵, - 》》》[答案] x=b乘以a的逆,a的逆可以用inv(a)解出
15942745629&&用matlab求解矩阵方程ax=b - 2x - 》》》 程序:展开全部 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
15942745629&&matlab 如何解矩阵方程组? - 》》》 先将xp=0两边取转置,得p'x'=0,求出x'再转置回来求出x. 当矩阵方程p'x'=0,rank(p)=r
15942745629&&怎么用matlab进行矩阵运算 - 》》》 首先告诉你,这个是肯定可以的,应该是你程序的问题. 如果你要求的是矩阵相乘,需要保证左边矩阵行数等于右边矩阵列数. 如果你求的是行列相等的矩阵中对应元素相乘,程序上需要注意.比如矩阵a、b中对应元素相乘,程序: a.*b 注意需要在乘号前
15942745629&&matlab求解矩阵方程 - 》》》 直接用除法:h = v*b*x; k = y/h;
15942745629&&matlab中矩阵方程 - 》》》 若f=0(齐次方程),则用克莱姆法则求便可求其解(求行列式用命令det()); 若f不为0(非齐次),则用高斯消元法(即初等变换法)可求其解. 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 %%显式方程的解
15942745629&&怎么用matlab运算矩阵 - 》》》 a,b为两个矩阵,直接运算a b,a-ba b,a-b,a*b,a/b即可
15942745629&&matlab求矩阵方程 - 》》》 it may not be the best answer.a=[0 1;1 -1]; q=[1 0;0 1]; syms p1 p2 p3 p4 p; p=[p1 p2;p3 p4]; f=a'*p p.'*a q; pp=solve(f(1),f(2),f(3),f(4),'p1','p2','p3','p4'); [pp.p1 pp.p2;pp.p3 pp.p4] ans = [ -1/2-p4, -1/2 p4] [ -1/2, p4]
15942745629&&matlab求矩阵方程组 》》》 重新整理一下你的方程. 你的第一个方程是 (pi0,pi1)=(pi0,pi1)*[a00,a01;a10,r*a2] 取个转置,就是 (pi0,pi1)(t) = [a00,a10;a01,r*a2]*(pi0,pi1)(t) 相当于求解线性方程组 ax = 0 a = [a00 - 1,a10;a01,r*a2 - 1] x = (pi0,pi1)(t) 你还有...
15942745629&&matlab矩阵方程的求解 》》》 因为m≠m 所以 u=pinv(c)*a 或用lu分解 [p,q]=lu(c) u=q\(p\a)