当前位置:编程学习 > Matlab >>

MATLAB 求解符号矩阵中的符号值

>> syms x y; A=[x+y x-y;1 3]; B=[8 4;1 3]; 当A=B时,求x、y的值,该怎么做? 我用solve('A=B','x','y');老是出错!
补充:syms theta1 theta2 theta3;
L1=link([0,0,theta1,0]);L2=link([0,4,theta2,0]);
L3=link([0,3,theta3,0]);L4=link([0,2,0,0]);
r1=robot({L1,L2,L3});r2=robot({L1,L2,L3,L4});
q1=[theta1 theta2 theta3];
q2=[theta1 theta2 theta3 0];
T1=fkine(r1,q1);T2=fkine(r2,q2);
其中T1、T2都是含有theta1、theta2、theta3的4×4符号矩阵,现在已知T2=T,T是一个具体值的矩阵,如T=[1 0 0 9;0 1 0 0;0 0 1 0;0 0 0 1];那么怎样求解参数theta1、theta2、theta3? 这是一个机器人逆运动学求解过程。
追问:写成solve('A(1,1)=B(1,1)','A(1,2)=B(1,2)','x','y');也会出错·a=solve('x+y=8','x-y=4','x','y')
如果A矩阵是通过计算得出的,我并不知道第一个元素是x+y,那么你这种写法就没意义了,能否有其他写法?
答案:你这个涉及到了方程组的解法:格式为:  SOLVE('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')
其他:可以这样求:
[x,y]=solve('x+y=8','x-y=4')
得到x=6
       y=2 syms x1 x2;
A=[2 3;4 5];
B=[A(1,:),A(2,:)];
C=[x1^2,x1,x2^2,x2];
pp=C*B' 
说具体点吧,什么样的数据?
 

上一个:请教Matlab图像处理高手~
下一个:用matlab画饼图的时候,要标注每一个部分的名称,怎么弄啊

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,