第二章作业.docx

上传人:b****3 文档编号:26450125 上传时间:2023-06-19 格式:DOCX 页数:14 大小:1.27MB
下载 相关 举报
第二章作业.docx_第1页
第1页 / 共14页
第二章作业.docx_第2页
第2页 / 共14页
第二章作业.docx_第3页
第3页 / 共14页
第二章作业.docx_第4页
第4页 / 共14页
第二章作业.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

第二章作业.docx

《第二章作业.docx》由会员分享,可在线阅读,更多相关《第二章作业.docx(14页珍藏版)》请在冰豆网上搜索。

第二章作业.docx

第二章作业

第二章MATLAB语言程序设计基础

一、实验内容:

题目1.

启动MATLAB环境,并给出语句tic,A=rand(500);B=inv(A);norm(A*B-eye(500)),toc,试运行该语句,观察得出的结果,并利用help命令对你不熟悉的语句进行帮助信息查询,逐条给出上述程序段与结果的解释。

【分析】:

在MATLAB上输入题目的语句运行即可得到结果。

对信息查询可以利用help来完成。

例如可以输入helpinv,MATLAB会自动输出相关信息。

【解答】:

输入如下语句:

>>tic,A=rand(500);%计算开始计时,生成500*500的(0,1)之间的随机分布矩阵A

B=inv(A);%求A的逆阵

norm(A*B-eye(500)),toc%求A*B减去500*500单位阵的结果的范数

运行该程序,显示如下:

ans=

1.6200e-011

Elapsedtimeis0.522389seconds.

信息查询:

(1)Tic是一个秒表计时器,用于计算一个命令所需的时间,结尾处的toc用于输出所计算的时间

(2)A=rand(n)--------由随机项组成的N行N矩阵,选择时间间隔在(0.0,1.0)的均匀分布

(3)norm用于求解最大的奇异值

对结果的解释:

该程序求解

随机矩阵的逆,并求出得出的逆矩阵与原矩阵的乘积,得出和单位矩阵的差,得出范数。

题目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)+6

题目3.

用MATLAB语句输入矩阵A和B

前面给出的是4×4矩阵,如果给出A(5,6)=5命令,矩阵A将得出什么结果?

【分析】:

矩阵A和B可以直接用书上教的方法直接输出。

执行A(5,6)=5命令,虽然行和列数均大于A矩阵的维数,但只要在其他位置上添加0即可。

【解答】:

(1)将矩阵A直接输入:

>>A=[1234;4321;2341;3241]

语句运行后,显示如下:

A=

1234

4321

2341

3241

(2)输入A(5,6)=5命令:

>>A(5,6)=5

语句运行后,显示如下:

A=

123400

432100

234100

324100

000005

(3)将复数矩阵B直接输入:

>>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.0000i

4.0000+1.0000i3.0000+2.0000i2.0000+3.0000i1.0000+4.0000i

2.0000+3.0000i3.0000+2.0000i4.0000+1.0000i1.0000+4.0000i

3.0000+2.0000i2.0000+3.0000i4.0000+1.0000i1.0000+4.0000i

题目4:

假设已知矩阵A,试给出相应的MATLAB命令,将其全部偶数行提取出来,赋给B矩阵,用A=magic(8)命令生成A矩阵,用上述的命令检验一下结果是不是正确。

【分析】:

首先可以利用magic()生成A矩阵,再利用语句提取A矩阵的偶数行

【解答】:

编写如下语句:

>>A=magic(8),B=A(2:

2:

end,:

)%提取偶数行

语句运行后,显示如下:

A=

642361606757

955541213515016

1747462021434224

4026273736303133

3234352928383925

4123224445191848

4915145253111056

858595462631

B=

955541213515016

4026273736303133

4123224445191848

858595462631

题目6:

用数值方法可以求出

,试不采用循环的形式求出和式的数值解。

由于数值方法采用double形式进行计算的,难以保证有效位数字,所以结果不一定精确。

试采用符号运算的方法求该和式的精确值。

【分析】:

可以利用数值的方法进行运算。

利用sum()函数,只要把对应的i改为[1:

63]即可。

(编写时还应主要“点”运算问题)

【解答】:

(1)用符号运算的方法编写语句:

>>sum(sym

(2).^[1:

63])

语句运行后,显示如下:

ans=

184********709551614

(2)由于结果有19位数值,所以用double型不能精确表示结果所以可以1000项的和来增加精确度。

语句编写如下:

>>sum(sym

(2).^[1:

1000])

语句运行后,显示如下;

ans=

21430172143725346418968500981200036211228096234110672148875007767407021022498722449863967576313917162551893458351062936503742905713846280871969155149397149607869135549648461970842149210124742283755908364306092949967163882534797535118331087892154125829142392955373084335320859663305248773674411336138750

题目7:

编写一个矩阵相加函数mat_add(),使其具体的调用格式为A=mat_add(A1,A2,A3,…),要求该函数能接受任意多个矩阵进行加法运算。

(注:

varargin变量的应用)

【分析】:

可以利用varargin变量来表示可变输入变量,然后再利用mat_add()进行矩阵相加

【解答】:

输入如下语句:

>>functionA=mat_add(varargin)

A=0;

fori=1:

length(varargin),A=A+varargin{i};end

题目11:

下面给出了一个迭代模型

写出求解该模型的M-函数(M-脚本文件),如果取迭代初值为

,那么请进行30000次迭代求出一组x和y向量,然后在所有的

坐标处点亮一个点(注意不要连线),最后绘制出所需的图形。

(提示这样绘制出的图形又称为Henon引力线图,它将迭代出来的随机点吸引到一起,最后得出貌似连贯的引力线图。

【分析】:

该题可以用循环形式来得出的Henon引力线图。

首先应对自变量进行赋值,题目给出要做3000次迭代,所以X的范围应为1-3000。

因为用循环,所以i的范围应是1-2999。

函数直接输出即可。

图像的输出只需用Plot()即可。

【解答】:

输入如下语句:

>>x=0;y=0;

fori=1:

29999

x(i+1)=1+y(i)-1.4*x(i)^2;

y(i+1)=0.3*x(i);

end

plot(x,y,'.')

运行语句后,显示图片如下:

题目13:

选择合适的步距绘制出下面的图形

,其中

(注:

合适的步距包括等距与不等距)

【分析】:

首先应对t进行定义,t开始于-1,终止于1。

为精确画图,设置步长为0.01。

接着对函数进行输入,因为t是向量,所以要特别注意“点”的问题。

最后用plot()函数来显示图片。

【解答】:

输入如下语句:

>>t=-1:

0.01:

1;y=sin(1./t);plot(t,y)

运行语句后,显示图片如下:

题目14:

对合适的

范围选取分别绘制出下列极坐标图形(注:

要求把图形窗口分为4块,每块绘一个图)

,②

,③

,④

【分析】:

该图为极坐标的编写。

首先应选取合适的

范围,t应于0,终止于pi。

为精确画图,设置步长为0.01。

因为

是向量,所以对函数进行输入时要特别注意“点”的问题。

如sin(

)/

在MATLAB上应写为sin(t)./t。

而图片的输出即可用polar()来表示。

【解答】:

编写如下语句:

>>t=0:

0.01:

2*pi;

subplot(221),polar(t,1.0013*t.^2),

subplot(222),t1=0:

0.01:

4*pi;polar(t1,cos(7*t1/2))

subplot(223),polar(t,sin(t)./t)

subplot(224),polar(t,1-(cos(7*t)).^3)

Warning:

Dividebyzero.

语句运行后,显示图片如下:

题目15:

用图解的方式找到下面两个方程构成的联立方程的近似解。

【分析】:

用ezplot将两个函数在MATLAB上画出图像,找到交点即可。

(注:

将两个函数同时显示在一张图片上要用“holdon”)

【解答】:

输入如下语句:

:

>>ezplot('x^2+y^2-3*x*y^2');

holdon

ezplot('x^3-x^2=y^2-y')

运行该语句,显示图片如下:

由图像观察可知:

该两交点大约为(0:

4,0.8),(1:

5;-0:

8)左右。

题目16:

请分别绘制出

的三维图和等高线。

【分析】:

首先对两个函数进行(x,y)的定义,两者是不一样的。

前者x,y开始于-1,终止于1,步长为0.1.后者者x,y开始于-pi,终止于pi,步长为0.1.接着关于三维图和等高线图只要用surf()和contour()函数表示即可。

【解答】:

(1)绘制

的三维图和等高线

输入如下语句:

>>[x,y]=meshgrid(-1:

.1:

1);

surf(x,y,x.*y),figure;contour(x,y,x.*y,30)

语句运行后,图像显示如下:

1).

的三维图

2).

的等高线图

(2)绘制

的三维图和等高线

输入如下语句:

>>[x,y]=meshgrid(-pi:

.1:

pi);

surf(x,y,sin(x.*y)),figure;contour(x,y,sin(x.*y),30)

>>

语句运行后,图像显示如下:

1).

的三维图

2)

的等高线图

二、实验心得

第一次这么全面的接触MATLAB这个软件。

通过老师上课仔细的讲解和实际的操作,我对MATLAB有了更深的了解。

我觉得MATLAB是一个非常实用便捷的工具。

以前大一时觉得很复杂很烦的问题MATLAB都可以解决。

而且MATLAB相对于C++方便了很多。

在课上我学到了很多。

我学会了MATLAB的基本数据结构(有数值型数据,符号型等)。

我懂得了MATLAB的基本语句。

而且还了解了基本数学运算(比如矩阵的代数运算,矩阵的逻辑运算,几本数论运算等)。

关于一些结构我也有所了解,比如循环结构,转移结构,试探结构等。

同时我还学回来如何画图。

比如一维的函数,二维的图形我都可以画出来。

我觉得学习MATLAB非常有意思。

不但可以提升我们的知识面,还可以提高我们的思维。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1