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

16074301 实训2

作者:成婷   发布时间:2019-05-18 20:12:55   浏览次数:38

习题 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.

[代码]

习题1

%计算两个任意四元数的乘积

disp ( '计算 q=q1*q2 ')

%以矩阵形式输入任意的两个四元数

disp ( '请输入四元数 q1=[a,b,c,d] ')

disp ( '请输入四元数 q2=[a,b,c,d] ')

q1=input ( ' q1= ');

q2=input( ' q2= ');

syms i1 i2 i3 ;

syms a b c d ;

p=timesQ(q1,q2)%调用函数timesQ计算四元数的矩阵形势相乘的结果

p=p(1)+p(2)*i1+p(3)*i2+p(4)*i3%将矩阵形式的四元数转换成正常的数的表示形式

执行结果

>> multiply

计算 q=q1*q2

请输入四元数 q1=[a,b,c,d]

请输入四元数 q2=[a,b,c,d]

 q1= [3,5,2,3];

 q2= [2,5,2,9];

p =

   -50    13    40    33

p =

13*i1 + 40*i2 + 33*i3 – 50

 

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

[代码]% q1= 2+1*i+3*j+4*k q2=0+1*i+1*j-1*k,利用习题1中编写的程序计算 p=p1*p2

 

>> multiply

计算 q=q1*q2

请输入四元数 q1=[a,b,c,d]

请输入四元数 q2=[a,b,c,d]

 q1= [2,3,1,4];

 q2= [0,1,1,-1];

p =

     0     7    -5    -4

p =

 

7*i1 - 5*i2 - 4*i3







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

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

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