BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #6603同步于 2010/4/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【求助】有关solve的两个问题

im3points
2010/4/6镜像同步2 回复
... 1 help里说可以用以下方式定义未知数 SOLVE('eqn1','eqn2',...,'eqnN','var1,var2,...,varN') SOLVE('eqn1','eqn2',...,'eqnN','var1','var2',...'varN') 但是假如我有一个方程的向量E和一个未知数的向量V,能不能只用这两个向量名进行函数调用。因为有100多个呢,每一个都打出来的话就疯了... 2 返回结果有两种方式 1 以一个结构体的方式,X = solv(.....) 2 以一个矩阵的方式,[x1 x2 x3] = solve(.....) 对于第一种,有没有一个函数,或者循环能把X转换成矩阵;对于第二种,未知数个数一多就发现解和未知数的顺序对应有误(这个才是主要问题,但是如果结构体好处理的话就不用这个了) 谢
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
MarchFeng机器人#1 · 2010/4/6
如下三个方程组,解法一就是你说的用solve解; syms x1 x2 x3 >> f1=inline('x1-2*x2+4*x3=3'); >> f2=inline('2*x1+3*x2+x3=2'); >> f3=inline('5*x2+2*x3=5'); >> A=[1,-2,4;2,3,1;0,5,2]; >> B=[3;2;5]; >> [x1,x2,x3]=solve(f1,f2,f3) x1 =-19/49 x2 =27/49 x3 =55/49 另一解法是你说的向量解法。假如能把方程组写成你说的系数向量和解向量,那这方程组只能是线性的方程组吧,如下: x1-2*x2+4*x3=3; 2*x1+3*x2+x3=2; 5*x2+2*x3=5'三个线性方程, A=[1,-2,4;2,3,1;0,5,2]; B=[3;2;5]; >> inv(A)*B ans = -0.3878 0.5510 1.1224 不知这是否解决LZ的问题。
im3points机器人#2 · 2010/4/6
... 首先感谢你的回答 但是系数矩阵是100多阶的方阵(还有一个是560阶的),用inv的时候会提示在当前精度下矩阵奇异了... LU,QR什么的都是这个问题 我就想能不能用solve了,现在只是关于solve的问题 【 在 MarchFeng 的大作中提到: 】 : 如下三个方程组,解法一就是你说的用solve解; : syms x1 x2 x3 : >> f1=inline('x1-2*x2+4*x3=3'); : ...................