注册 登录
编程论坛 Matlab

[求助]这个方程组怎么解?

xuexixuexia 发布于 2006-06-29 14:04, 687 次点击

各位朋友,我需要解这样一个方程:
P3=[5;
5*sqrt(3);
0;
1];
P=[5*sqrt(3);
15;
0;
1];
T21=[cos(B1) -sin(B1) 0 10;
sin(B1) cos(B1) 0 0;
0 0 1 0 ;
0 0 0 1];
T10=[cos(B2) -sin(B2) 0 0;
sin(B2) cos(B2) 0 0;
0 0 1 0 ;
0 0 0 1];
T20=T21*T10;
P=T20*P3;


需要解出T21和T10里的B1和B2
怎么办啊?
谢谢了先

2 回复
#2
abingchem2006-06-30 12:40
由T20=T21*T10可以得到,

T20=
[ cos(B1)*cos(B2)-sin(B1)*sin(B2), -cos(B1)*sin(B2)-sin(B1)*cos(B2), 0, 10]
[ sin(B1)*cos(B2)+cos(B1)*sin(B2), cos(B1)*cos(B2)-sin(B1)*sin(B2), 0,      0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
可知,T20是一个4乘4的方阵,设其元素为Tij,
已知P和P3,和Tij,做矩阵乘法,可以求出Tij,然后对照上面解出的方阵,可以解方程了。

Matlab里由P=T20*P3,可以得到T20=P*pinv(P3),
得到的结果与上面计算的结果不一样

问题出在哪里我就说不好了
#3
zhangenter2006-06-30 20:06

MATLAB算:
[B1,B2]=solve('T20(1,1)*P3(1)+T20(1,2)*P3(2)+T20(1,3)*P3(3)+T20(1,4)*P3(4)=P(1)','T20(2,1)*P3(1)+T20(2,2)*P3(2)+T20(2,3)*P3(3)+T20(2,4)=P(4)')

B1 =

[ empty sym ]

B2 =

[]
用手算,化简到两个式子:3^(1/2)cos(B1+B2)-3sin(B1+B2)=3和sin(B1+B2)+3^(1/2)cos(B1+B2)=3
即:sin(B1+B2)=0和cos(B1+B2)=3^(1/2)>1,方程无解.

1