matlab课后习题答案_第1页
matlab课后习题答案_第2页
matlab课后习题答案_第3页
matlab课后习题答案_第4页
matlab课后习题答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题二1. 如何理解“矩阵是 MATLAB 最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。因此,矩阵是 MATLAB 最基本、最重要的数据对象。2. 设 A 和 B 是两个同维同大小的矩阵,问:(1) A*B 和 A.*B 的值是否相等?答:不相等。(2) A./B 和 B.A 的值是否相等?答:相等。(3) A/B 和 BA 的值是否相等?答:不相等。(4) A/B 和 BA 所代表的数学含义是什么?答: A/B 等效于 B 的逆右乘 A 矩阵,即 A*inv(B) ,而 BA 等效于

2、 B 矩阵的逆左乘 A 矩阵,即 inv(B)*A 。3. 写出完成下列操作的命令。(1) 将矩阵 A 第 25 行中第 1, 3, 5 列元素赋给矩阵 B。答: B=A(2:5,1:2:5); 或 B=A(2:5,1 3 5)(2) 删除矩阵 A 的第 7 号元素。答: A(7)=(3) 将矩阵 A 的每个元素值加 30。答: A=A+30;(4) 求矩阵 A 的大小和维数。答: size(A);ndims(A);(5) 将向量 t 的 0 元素用机器零来代替。答: t(find(t=0)=eps;(6) 将含有 12 个元素的向量 x 转换成 3 4 矩阵。答: reshape(x,3,4

3、);(7) 求一个字符串的 ASCII 码。答: abs(123); 或 double(123);(8) 求一个 ASCII 码所对应的字符。答: char(49);4. 下列命令执行后, L1 、 L2 、L3 、L4 的值分别是多少?A=1:9;B=10-A;.L1=A=B;L2=A3&A3&A7);答: L1 的值为 0, 0, 0, 0, 1, 0, 0, 0, 0 L2 的值为 1, 1, 1, 1, 1, 0, 0, 0, 0 L3 的值为 0, 0, 0, 1, 1, 1, 0, 0, 0 L4 的值为 4, 5, 65. 已知23100.77804145655A50323269

4、.54543.14完成下列操作:(1) 取出 A 的前 3 行构成矩阵 B,前两列构成矩阵 C,右下角 3 2 子矩阵构成矩阵 D,B 与 C 的乘积构成矩阵 E。答: B=A(1:3,:);C=A(:,1:2);D=A(2:4,3:4);E=B*C;(2) 分别求 E=10&A25) 。01111100答: E=10&A=0.5 & x=1.5 & x=3.5 & x5.5y=log(abs(b+c/x);enddisp(y=,num2str(y);(2) 用 switch 语句实现计算:a=input(请输入 a 的值: );b=input(请输入 b 的值: );c=input(请输入

5、c 的值: );x=input(请输入 x 的值: );switch fix(x/0.5)case 1,2y=a*x2+b*x+c;case num2cell(3:6)y=a*(sin(b)c)+x;case num2cell(7:10)y=log(abs(b+c/x);enddisp(y=,num2str(y);3. 产生 20 个两位随机整数,输出其中小于平均值的偶数。答:A=fix(10+89*rand(1,20);sum=0; for i=1:20sum=sum+A(i);end B=A(find(A v_maxv_max=x;end;if x v_minv_min=x;end;end

6、disp(最大数为: , num2str(v_max);disp(最小数为: , num2str(v_min);(2) 用 max 函数、 min 函数实现:for i=1:5A(i)=input( 请输入第 , num2str(i), 数: );enddisp(最大数为: , num2str(max(A);disp(最小数为: , num2str(min(A);5.已知: s122223L263 ,分别用循环结构和调用MATLAB 的 sum 函数求 s 的值。答:(1) 用循环结构实现:s=0;for i=0:63s=s+2i;ends(2) 调用 sum 函数实现:s=0:63;s=2.

7、s;sum(s)6. 当 n 分别取 100、1000、10000 时,求下列各式的值。(1) 1111L( 1)n 1 1L ( ln 2)234n(2)1111L ()3574(3)111L1L (1)416644n3(4)224466L(2n)(2 n)L133557(2n 1)(2 n 1)2要求分别用循环结构和向量运算(使用sum 或 prod 函数)来实现。答:(1) 用循环结构实现:sum=0;for k=1:100sum=sum+(-1)(k+1)/k;endsum使用 sum 函数:x=;for k=1:10000x=x, (-1)(k+1)/k;endsum(x)(2) 用

8、循环结构实现:sum=0;for k=1:100sum=sum+(-1)(k+1)/(2*k-1);endsum使用 sum 函数:x=;for k=1:100x=x, (-1)(k+1)/(2*k-1);endsum(x)(3) 用循环结构实现:sum=0;for k=1:100sum=sum+1/(4k);endsum使用 sum 函数实现:x=;for k=1:100x=x, 1/(4k);endsum(x)(4) 用循环结构实现:t=1;for k=1:100t=t*(2*k)*(2*k)/(2*k-1)*(2*k+1);endt使用 prod 函数实现:x=;for k=1:100x

9、=x, (2*k)*(2*k)/(2*k-1)*(2*k+1);endprod(x)7. 编写一个函数文件,求小于任意自然数n 的斐波那契( Fibnacci)数列各项。斐波那契数列定义如下:f11,n1f21,n2fnfn 1fn 2 , n2答:function x=fibnacci(n)for i=1:nif i=2x(i)=1;elsex(i)=x(i-1)+x(i-2);endend8. 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。答:函数文件 myfnc.m:function x, y= myfnc(A, B)tryx=A*B;catchx=;endy

10、=A.*B;命令文件 myexe.m:A=input( 请输入矩阵 A :);B=input( 请输入矩阵 B: );x, y=myfnc(A, B);if length(x)=0display(两矩阵的维数不匹配,无法进行乘积运算!);elsedisp(矩阵 A 和矩阵 B 的乘积为: );xenddisp(矩阵 A 和矩阵 B 的点乘为: );yn9.先用函数的递归调用定义一个函数文件求i m ,然后调用该函数文件求i 11005010kk 2k 1k 1k 11 。k答:函数文件 myfnc.m:function sum=myfnc(n, m)if n=1sum=1;elsesum= myfnc (n-1, m)+nm;end1005010在命令窗口中调用 myfnc.m 文件,计算kk 2k 1k 1k 11 :ksum=myfnc(100, 1)+ myfnc(50, 2)+myfnc(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论