MATLAB作业1参考答案.doc

上传人:夏** 文档编号:548682415 上传时间:2023-07-30 格式:DOC 页数:9 大小:87KB
返回 下载 相关 举报
MATLAB作业1参考答案.doc_第1页
第1页 / 共9页
MATLAB作业1参考答案.doc_第2页
第2页 / 共9页
MATLAB作业1参考答案.doc_第3页
第3页 / 共9页
MATLAB作业1参考答案.doc_第4页
第4页 / 共9页
MATLAB作业1参考答案.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《MATLAB作业1参考答案.doc》由会员分享,可在线阅读,更多相关《MATLAB作业1参考答案.doc(9页珍藏版)》请在金锄头文库上搜索。

1、MATLAB作业1参考答案1 、启动MATLAB 环境,并给出语句tic, A=rand(500); B=inv(A); norm(A*B-eye(500),toc,试运行该语句,观察得出的结果,并利用help 命令对你不熟悉的语句进行帮助信息查询,逐条给出上述程序段与结果的解释。【求解】在MATLAB 环境中感触如下语句,则可以看出,求解随机矩阵的逆,并求出得出的逆矩阵与原矩阵的乘积,得出和单位矩阵的差,得出范数。一般来说,这样得出的逆矩阵精度可以达到。 tic, A=rand(500); B=inv(A); norm(A*B-eye(500), tocans =1.2333e-012Ela

2、psed time is 1. seconds.2、试用符号元素工具箱支持的方式表达多项式,并令,将f(x) 替换成s 的函数。【求解】可以先定义出f 函数,则由subs() 函数将x 替换成s 的函数 syms s x;f=x5+3*x4+4*x3+2*x2+3*x+6;F=subs(f,x,(s-1)/(s+1)F =(s-1)5/(s+1)5+3*(s-1)4/(s+1)4+4*(s-1)3/(s+1)3+2*(s-1)2/(s+1)2+3*(s-1)/(s+1)+63、用MATLAB 语句输入矩阵A 和B 前面给出的是4 4 矩阵,如果给出A(5,6) = 5 命令,矩阵A将得出什么结

3、果?【求解】用课程介绍的方法可以直接输入这两个矩阵 A=1 2 3 4; 4 3 2 1; 2 3 4 1; 3 2 4 1A =1 2 3 44 3 2 12 3 4 13 2 4 1若给出A(5,6)=5 命令,虽然这时的行和列数均大于A矩阵当前的维数,但仍然可以执行该语句,得出 A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 2 4 1 0 00 0 0 0 0 5复数矩阵也可以用直观的语句输入 B=1+4i 2+3i 3+2i 4+1i; 4+1i 3+2i 2+3i 1+4i;2+3i 3+2i 4+1i 1+4i; 3+2i 2+3i 4

4、+1i 1+4i;B =1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i4、假设已知矩阵A ,试给出相应的MAT

5、LAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。【求解】魔方矩阵可以采用magic() 生成,子矩阵也可以提取出来 A=magic(8), B=A(2:2:end,:)A =64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62

6、63 1B =9 55 54 12 13 51 50 1640 26 27 37 36 30 31 3341 23 22 44 45 19 18 488 58 59 5 4 62 63 15、用MATLAB 语言实现下面的分段函数。【求解】两种方法,其一,巧用比较表达式解决 y=h*(xD) + h/D*x.*(abs(x)=D) -h*(x for i=1:length(x)if x(i)D, y(i)=h;elseif abs(x(i) sum(2.1:63)ans = 1.0955e+019 sum(sym(2).1:63)ans =由于结果有19 位数值,所以用double 型不能精确

7、表示结果,该数据类型最多表示16 位有效数字。其实用符号运算方式可以任意保留有效数字,例如可以求200 项的和或1000 项的和可以由下面语句立即得出。 sum(sym(2).1:200)ans = sum(sym(2).1:1000)ans =07080806059687507、编写一个矩阵相加函数mat_add() ,使其具体的调用格式为A=mat_add(A1 ,A2 ,A3 ,) ,要求该函数能接受任意多个矩阵进行加法运算。(注:varargin 变量的应用)【求解】可以编写下面的函数,用varargin 变量来表示可变输入变量function A=mat_add(varargin)A

8、=0;for i=1:length(varargin), A=A+varargini; end如果想得到合适的错误显示,则可以试用try, catch 结构。function A=mat_add(varargin)tryA=0;for i=1:length(varargin), A=A+varargini; endcatch, error(lasterr); end8、已知Fibonacci 数列由式可以生成,其中初值为,试编写出生成某项Fibonacci 数值的MATLAB 函数,要求函数格式为y=fib(k) ,给出k 即能求出第k 项并赋给 y 向量;编写适当语句,对输入输出变量进行检验

9、,确保函数能正确调用;利用递归调用的方式编写此函数。(注:递归的调用方式速度较慢,比循环语句慢很多,所以不是特别需要,解这样问题没有必要用递归调用的方式。)【求解】假设fib(n) 可以求出Fibonacci 数列的第n 项,所以对n = 3 则可以用k=fib(n-1)+fib(n -2) 可以求出数列的n + 1 项,这可以使用递归调用的功能,而递归调用的出口为1。综上,可以编写出M-函数。function y=fib(n)if round(n)=n & n=1if n=3y=fib(n-1)+fib(n-2);else, y=1; endelseerror(n must be posit

10、ive integer.)end例如,n = 10 可以求出相应的项为 fib(10)ans =55现在需要比较一下递归实现的速度和循环实现的速度 tic, fib(20), tocans =elapsed_time =62.0490 tic, a=1 1; for i=3:30, a(i)=a(i-1)+a(i-2); end, a(30), tocans =elapsed_time =0.0100应该指出,递归的调用方式速度较慢,比循环语句慢很多,所以不是特别需要,解这样问题没有必要用递归调用的方式。9、下面给出了一个迭代模型写出求解该模型的M-函数(M-脚本文件),如果取迭代初值为 ,那

11、么请进行30000 次迭代求出一组x 和y 向量,然后在所有的 和坐标处点亮一个点( 注意不要连线) ,最后绘制出所需的图形。(提示这样绘制出的图形又称为Henon 引力线图,它将迭代出来的随机点吸引到一起,最后得出貌似连贯的引力线图。)【求解】用循环形式解决此问题,可以得出所示的Henon 引力线图。 x=0; y=0;for i=1:29999x(i+1)=1+y(i)-1.4*x(i)2;y(i+1)=0.3*x(i);endplot(x,y,.)上述的算法由于动态定义x 和y,所以每循环一步需要重新定维,这样做是很消耗时间的,所以为加快速度,可以考虑预先定义这两个变量,如给出x=zer

12、os(1,30000)。10、选择合适的步距绘制出下面的图形,其中。(注:合适的步距包括等距与不等距)【求解】用普通的绘图形式,选择等间距,得出所示的曲线,其中x = 0 左右显得粗糙。 t=-1:0.03:1; y=sin(1./t); plot(t,y)选择不等间距方法,可以得出曲线。 t=-1:0.03: -0.25, -0.248:0.001:0.248, 0.25:.03:1; y=sin(1./t); plot(t,y)11、对合适的范围选取分别绘制出下列极坐标图形(注:要求把图形窗口分为4块,每块绘一个图),【求解】绘制极坐标曲线的方法很简单,用polar( ) 即可以绘制出极坐

13、标图。注意绘制图形时的点运算: t=0:0.01:2*pi; subplot(221), polar(t,1.0013*t.2),% (a)subplot(222), t1=0:0.01:4*pi; polar(t1,cos(7*t1/2) % (b)subplot(223), polar(t,sin(t)./t) % (c)subplot(224), polar(t,1-(cos(7*t).3)12、请分别绘制出 和 的三维图和等高线。【求解】(a) 给出下面命令即可得出的图形。 x,y=meshgrid(-1:.1:1);surf(x,y,x.*y), figure; contour(x,y,x.*y,30)(b) 给出下面命令即可得出的图形。 x,y=meshgrid(-pi:.1:pi);surf(x,y,sin(x.*y), figure; contour(x,y,sin(x.*y),30)从实施课程改革以来,我反复学习有关的教育教学理论,深刻领会新课标精神,认真反思自身教学实际,研究学生,探究教法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 咨询培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号