MATLAB作业1 参考答案

上传人:cn****1 文档编号:497389155 上传时间:2023-02-06 格式:DOC 页数:7 大小:86.50KB
返回 下载 相关 举报
MATLAB作业1 参考答案_第1页
第1页 / 共7页
MATLAB作业1 参考答案_第2页
第2页 / 共7页
MATLAB作业1 参考答案_第3页
第3页 / 共7页
MATLAB作业1 参考答案_第4页
第4页 / 共7页
MATLAB作业1 参考答案_第5页
第5页 / 共7页
点击查看更多>>
资源描述

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

1、MATLAB作业1参考答案1 、在你的机器上安装MATLAB 语言环境,并键入demo 命令,由给出的菜单系统和对话框原型演示程序,领略MATLAB 语言在求解数学问题方面的能力与方法。【求解】略.2、启动MATLAB 环境,并给出语句tic, A=rand(500); B=inv(A); norm(A*B-eye(500),toc,试运行该语句,观察得出的结果,并利用help 命令对你不熟悉的语句进行帮助信息查询,逐条给出上述程序段与结果的解释。【求解】在MATLAB 环境中感触如下语句,则可以看出,求解随机矩阵的逆,并求出得出的逆矩阵与原矩阵的乘积,得出和单位矩阵的差,得出范数。一般来说,

2、这样得出的逆矩阵精度可以达到。 tic, A=rand(500); B=inv(A); norm(A*B-eye(500), tocans =1.2333e-012Elapsed time is 1.301000 seconds.3、试用符号元素工具箱支持的方式表达多项式,并令,将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

3、*(s-1)2/(s+1)2+3*(s-1)/(s+1)+6syms x sx=(s-1)./(s+1);y=x.5+3*x.4+4*x.3+2*x.2+3*x+6;ysimple(y) y=19 - (72*s4 + 120*s3 + 136*s2 + 72*s + 16)/(s + 1)5 4、用MATLAB 语句输入矩阵A 和B 前面给出的是4 4 矩阵,如果给出A(5; 6) = 5 命令将得出什么结果?【求解】用课程介绍的方法可以直接输入这两个矩阵 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若

4、给出A(5,6)=5 命令,虽然这时的行和列数均大于B 矩阵当前的维数,但仍然可以执行该语句,得出 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.000

5、0i 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.0000i5、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。【求解】魔方矩阵可以采用magic() 生成,子矩阵也

6、可以提取出来 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

7、16、用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(sym(2).1:63)ans =18446744073709551614由于结果有19 位数值,所以用double 型不能精确表示结果,该数据类型最多表示16 位有效数字。其实用符号运算方式可以任意保留有效数字,例如可以求200 项的和或1000 项的和可以由下面语句立即得出。 sum(sym(2).1:200)ans =321

8、3876088517980551083924184682325205044405987565585670602750 sum(sym(2).1:1000)第一种方法i=0;s=0;for i=0:63 s=s+2.i;ends s = 1.8447e+19 第二种方法s=0;i=0;while(i= 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=

9、1; endelseerror(n must be positive integer.)end例如,n = 10 可以求出相应的项为 fib(10)ans =55现在需要比较一下递归实现的速度和循环实现的速度 tic, fib(20), tocans =832040elapsed_time =62.0490 tic, a=1 1; for i=3:30, a(i)=a(i-1)+a(i-2); end, a(30), tocans =832040elapsed_time =0.0100应该指出,递归的调用方式速度较慢,比循环语句慢很多,所以不是特别需要,解这样问题没有必要用递归调用的方式。10

10、、下面给出了一个迭代模型写出求解该模型的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,所以每循环一步需要重新

11、定维,这样做是很消耗时间的,所以为加快速度,可以考虑预先定义这两个变量,如给出x=zeros(1,30000)。11、选择合适的步距绘制出下面的图形,其中。(注:合适的步距包括等距与不等距)【求解】用普通的绘图形式,选择等间距,得出所示的曲线,其中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)12、对合适的范围选取分别绘制出下列极坐标图形(注:要求把图形窗口分为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,si

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

当前位置:首页 > 建筑/环境 > 施工组织

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