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

刘乾,瞿婷,程雪,侯晓阳作业6

作者:17074140   发布时间:2019-06-04 16:33:22   浏览次数:40

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

分析: 计算p=p1*p2,通过提示内容,可以先把一个四元数p1通过矩阵表示出来,然后再把p2用列向量表示出来,就可以通过矩阵乘以向量的形式,输出p=p1*p2的结果。

代码function p=siyuansu_5_11(p1,p2)

disp('计算p=p1*p2')

disp('请输入四元数p1=[a1;b1;c1;d1]')

syms a1 b1 c1 d1 ;

p1=input('p1=')

syms a2 b2 c2 d2 ;

disp('请输入四元数p2=[a2;b2;c2;d2]')

p2=input('p2=')

% A=[a1 -b1 -c1 -d1;b1 a1 -d1 c1;c1 d1 a1 -b1;d1 -c1 b1 a1]

A=[p1(1) -p1(2) -p1(3) -p1(4);

p1(2) p1(1) -p1(4) p1(3);

p1(3) p1(4) p1(1) -p1(2);

p1(4) -p1(3) p1(2) p1(1)]

p=A*p2;

实验结果

p1=[1;2;3;4]

p1 = 1

     2

     3

     4

请输入四元数p2=[a2;b2;c2;d2]

p2=[2;3;4;5]

p2 = 2

     3

     4

     5

A =  1    -2    -3    -4

     2     1    -4     3

     3     4     1    -2

     4    -3     2     1

ans =-36

     6

     12

     12

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

分析: 计算p=p1*p2,通过提示内容,可以先把一个四元数p1通过矩阵表示出来,然后再把p2用列向量表示出来,就可以通过矩阵乘以向量的形式,输出p=p1*p2的结果。

代码:与题一中的程序基本相似,在进行同样的操作。

实验结果:通过习题1中的程序,计算出p=p1*p2=[0;-5;7;-4]

>> siyuansu_5_11

计算p=p1*p2

请输入四元数p1=[a1;b1;c1;d1]

p1=[2;1;3;4]

请输入四元数p2=[a2;b2;c2;d2]

p2=[0;1;1;-1]

A =  2    -1    -3    -4

     1     2    -4     3

     3     4     2    -1

     4    -3     1     2

ans =0

    -5

     7

    -4

 







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

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

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