作业帮 > 数学 > 作业

matlab计算线性方程组的问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/05/22 00:14:56
matlab计算线性方程组的问题
用matlab计算一个线性方程组它显示这个In an assignment A(I) = B,the number of elements in B and I must be the same.
代码如下,输入是两个角度u(1)和u(2)
function[x]=gongzuokongjianceshi(u)
ra=[-60 -60 -60;0 -17.32 17.32;20 -10 -10];
rb=[0 0 0;0 -47.63 47.63;55 -27.5 -27.5];
R1=[cos(u(1)) -sin(u(1)) 0;sin(u(1)) cos(u(1)) 0;0 0 1];
R2=[cos(u(2)) 0 sin(u(2));0 1 0;-sin(u(2)) 0 cos(u(2))];
R=R1*R2;
L=ra-R*rb;
c=[1;0;0];
f=R*c;%平面法向量
M1=[f(1) f(2) f(3);L(2) -L(1) 0;0 -L(3) L(2)];
N1=[f(1)*(-35);-60*L(2);-20*L(2)];
M2=[f(1) f(2) f(3);L(5) -L(4) 0;0 L(6) -L(5)];
N2=[f(1)*(-35);L(4)*17.32-60*L(5);L(5)*10-L(6)*17.32];
M3=[f(1) f(2) f(3);L(8) -L(7) 0;0 L(9) -L(8)];
N3=[f(1)*(-35);-L(7)*17.32-60*L(8);L(8)*10+L(9)*17.32];
x(1)=pinv(M1)*N1;
x(2)=pinv(M2)*N2;
x(3)=pinv(M3)*N3;
pinv(M1)*N1是一列,而x(1)是一个数值,所以不能赋值.
改成:
x(:,1)=pinv(M1)*N1;
x(:,2)=pinv(M2)*N2;
x(:,3)=pinv(M3)*N3;
就好了.