资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
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-012Elapsed 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将得出什么结果?【求解】用课程介绍的方法可以直接输入这两个矩阵 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+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 ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给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 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 型不能精确表示结果,该数据类型最多表示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=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 向量;编写适当语句,对输入输出变量进行检验,确保函数能正确调用;利用递归调用的方式编写此函数。(注:递归的调用方式速度较慢,比循环语句慢很多,所以不是特别需要,解这样问题没有必要用递归调用的方式。)【求解】假设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 positive 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-脚本文件),如果取迭代初值为 ,那么请进行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=zeros(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( ) 即可以绘制出极坐标图。注意绘制图形时的点运算: 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)从实施课程改革以来,我反复学习有关的教育教学理论,深刻领会新课标精神,认真反思自身教学实际,研究学生,探究教法
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号