现在时间是:
当前位置:首 页 >> Matlab>> 教学区>> 文章列表

16074327作业六

作者:16074327   发布时间:2019-05-21 17:31:57   浏览次数:41

1、设 p1=[a1;b1;c1;d1] 和 p2=[a2;b2;c2;d2] 分别表示两个四元数 p1=a1+b1*i+c1*j+d1*k 和 p2=a2+b2*i+c2*j+d2*k ,编写程序求 p=q1*q2。

提示:(1)设 p=a+b*i+c*j+d*k 则可用 p=[a; b; c; d] 表示.
   (2)令 
          A=[a1 -b1 -c1 -d1
            b1 a1 -d1 c1 
            c1 d1 a1 -b1
            d1 -c1 b1 a1],
则 p=A*p2.


 

程序代码:

function q=q1(q1,q2)

 

syms i1 i2 i3;

 

syms a0 b0 c0 d0 q1 q2;

 

q1=input('q1=');

 

q2=input('q2=');

 

a0=q1(1)*q2(1)-q1(2)*q2(2)-q1(3)*q2(3)-q1(4)*q2(4);

 

b0=q1(1)*q2(2)+q1(2)*q2(1)+q1(3)*q2(4)-q1(4)*q2(3);

 

c0=q1(1)*q2(3)+q1(3)*q2(1)+q1(4)*q2(2)-q1(2)*q2(4);

 

d0=q1(1)*q2(4)+q1(4)*q2(1)+q1(2)*q2(3)-q1(3)*q2(2);

 

q=a0+b0*i1+c0*i2+d0*i3;

 

运行结果:

>> q1

q1=[2 3 5 6]

q2=[4 2 4 5]

 

ans =

 

17*i1 + 25*i2 + 36*i3 - 48

 



2、设 q1= 2+1*i+3*j+4*k 和 q2=0+1*i+1*j-1*k,利用习题1中编写的程序计算 p=p1*p2, 并且利用 Bj Bi Bk 画图解释四元数乘积与旋转之间的关系。

 
 
程序代码:
syms q1 q2 q t x y z a b c;

q=sys3(q1,q2)

t=[0:0.1:20];%t为旋转角度

a=input('a=');b=input('b=');c=input('c=');%其中(a,b,c)为旋转轴

x=a*sin(t/2);y=b*cos(t/2);z=c*sin(t/2);

plot3(x,y,z,'.')
 

运行结果:
>> systurn
q1=[2 3 4 5]
q2=[2 3 4 -1]
 
q =
 
34*i2 - 12*i1 + 8*i3 - 16
 
a=1
b=2
c=4
 
图片:
 
 






上一篇:没有了    下一篇:没有了

Copyright ©2020    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2020 lingw.net.粤ICP备16125321号 -5