首页 MATLAB作业1参考标准答案

MATLAB作业1参考标准答案

举报
开通vip

MATLAB作业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-...

MATLAB作业1参考标准答案
MATLAB作业1参考 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 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-012Elapsedtimeis1.301000seconds.2、试用符号元素工具箱支持的方式表达多项式,并令,将f(x)替换成s的函数。【求解】可以先定义出f函数,则由subs()函数将x替换成s的函数>>symssx;f=x^5+3*x^4+4*x^3+2*x^2+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=[1234;4321;2341;3241]A=1234432123413241若给出A(5,6)=5命令,虽然这时的行和列数均大于A矩阵当前的维数,但仍旧可以执行该语句,得出>>A(5,6)=5A=123400432100234100324100000005复数矩阵也可以用直观的语句输入>>B=[1+4i2+3i3+2i4+1i;4+1i3+2i2+3i1+4i;2+3i3+2i4+1i1+4i;3+2i2+3i4+1i1+4i];B=1.0000+4.0000i2.0000+3.0000i3.0000+2.0000i4.0000+1.0000i4.0000+1.0000i3.0000+2.0000i2.0000+3.0000i1.0000+4.0000i2.0000+3.0000i3.0000+2.0000i4.0000+1.0000i1.0000+4.0000i3.0000+2.0000i2.0000+3.0000i4.0000+1.0000i1.0000+4.0000i4、假设已知矩阵A,试给出相应的MATLAB命令,将其全部偶数行提取出来,赋给B矩阵,用A=magic(8)命令生成A矩阵,用上述的命令检验一下结果是不是正确。【求解】魔方矩阵可以接受magic()生成,子矩阵也可以提取出来>>A=magic(8),B=A(2:2:end,:)A=64236160675795554121351501617474620214342244026273736303133323435292838392541232244451918484915145253111056858595462631B=955541213515016402627373630313341232244451918488585954626315、用MATLAB语言实现下面的分段函数。【求解】两种方法,其一,巧用比较表达式解决>>y=h*(x>D)+h/D*x.*(abs(x)<=D)-h*(x<-D);另外一种方法,用循环语句和条件转移语句>>fori=1:length(x)ifx(i)>D,y(i)=h;elseifabs(x(i))<=D,y(i)=h/D*x(i);else,y(i)=-h;endend其中,前者语句结构简洁,但适用范围更广,允许使用矩阵型x,后者只能使用向量型的x,但不能处理矩阵问题。6、用数值方法可以求出,试不接受循环的形式求出和式的数值解。由于数值方法接受double形式进行计算的,难以保证有效位数字,所以结果不肯定精确。试接受符号运算的方法求该和式的精确值。【求解】用符号运算的方式可以接受下面语句>>sum(2.^[1:63])ans=1.844674407370955e+019>>sum(sym(2).^[1:63])ans=18446744073709551614由于结果有19位数值,所以用double型不能精确表示结果,该数据类型最多表示16位有效数字。其有用符号运算方式可以任意保留有效数字,例如可以求200项的和或1000项的和可以由下面语句马上得出。>>sum(sym(2).^[1:200])ans=3213876088517980551083924184682325205044405987565585670602750>>sum(sym(2).^[1:1000])ans=214301721437253464189685009812000362112280962341106721488750077674070210224987224498639675763139171625518934583510629365037429057138462808719691551493971496078691355496484619708421492101247422837559083643060929499671638825347975351183310878921541258291423929553730843353208596633052487736744113361387507、编写一个矩阵相加函数mat_add(),使其具体的调用格式为A=mat_add(A1,A2,A3,…),要求该函数能接受任意多个矩阵进行加法运算。(注:varargin变量的应用)【求解】可以编写下面的函数,用varargin变量来表示可变输入变量functionA=mat_add(varargin)A=0;fori=1:length(varargin),A=A+varargin{i};end假如想得到合适的错误显示,则可以试用try,catch结构。functionA=mat_add(varargin)tryA=0;fori=1:length(varargin),A=A+varargin{i};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-函数。functiony=fib(n)ifround(n)==n&n>=1ifn>=3y=fib(n-1)+fib(n-2);else,y=1;endelseerror('nmustbepositiveinteger.')end例如,n=10可以求出相应的项为>>fib(10)ans=55现在需要比较一下递归实现的速度和循环实现的速度>>tic,fib(20),tocans=832040elapsed_time=62.0490>>tic,a=[11];fori=3:30,a(i)=a(i-1)+a(i-2);end,a(30),tocans=832040elapsed_time=0.0100应当指出,递归的调用方式速度较慢,比循环语句慢很多,所以不是特殊需要,解这样问题没有必要用递归调用的方式。9、下面给出了一个迭代模型写出求解该模型的M-函数(M-脚本文件),假如取迭代初值为,那么请进行30000次迭代求出一组x和y向量,然后在全部的和坐标处点亮一个点(留意不要连线),最终绘制出所需的图形。(提示这样绘制出的图形又称为Henon引力线图,它将迭代出来的随机点吸引到一起,最终得出貌似连贯的引力线图。)【求解】用循环形式解决此问题,可以得出所示的Henon引力线图。>>x=0;y=0;fori=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)
本文档为【MATLAB作业1参考标准答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
电气工程师
暂无简介~
格式:doc
大小:87KB
软件:Word
页数:10
分类:其他高等教育
上传时间:2023-01-20
浏览量:39