专业软件实习报告MATLABMAPLE.docx
- 文档编号:23152884
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:31
- 大小:482.70KB
专业软件实习报告MATLABMAPLE.docx
《专业软件实习报告MATLABMAPLE.docx》由会员分享,可在线阅读,更多相关《专业软件实习报告MATLABMAPLE.docx(31页珍藏版)》请在冰豆网上搜索。
专业软件实习报告MATLABMAPLE
《专业软件》课程设计实验报告
(院)系______
专业______
班级__学号______
姓名_____
指导教师_________
2010年7月8日
目录
一、数学专业软件简介…………………………………………………1
二、Matlab的应用……………………………………………………...5
三、Maple的应用……………………………………………………..21
四、总结………………………………………………………………..25
一、数学专业软件简介
1、MATLAB简介
Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。
在欧美各高等院校,Matlab已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。
Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
MATLAB是矩阵实验室(Matrix Laboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。
当前流行的MATLAB7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
(1)Matlab的发展
Ø1980年,Moler教授用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。
Ø1984年,Moler等成立了TheMathWorks的公司,用C语言完全改写Matlab,并推出第一个商业版。
Ø增添图形图像处理、符号运算、以及与其他流行软件的接口功能,使得Matlab的功能越来越强大。
Ø到九十年代,在国际上30几个数学类科技应用软件中,Matlab在数值计算方面独占鳌头。
目前,Matlab已经成为国际上最流行的科学与工程计算的软件工具,是一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言。
就影响而言,至今仍然没有一个别的计算软件可与Matlab匹敌。
(2)Matlab的发行
1984年,Matlab1.0(DOS版,182K,20多个函数)
1992年,Matlab4.0(93年推出Windows版,加入simulink)
1994年,Matlab4.2(得到广泛重视和应用)
1999年,Matlab5.3(真正实现32位运算)
2002年,Matlab6.5(采用JIT加速器)
2004年,Matlab7.0
2006年,MatlabR2006a
(3)Matlab的特点与功能
1)Matlab是一个交互式软件系统
输入一条命令,立即就可以得出该命令的结果
2)Matlab具有很强的数值计算功能
✓Matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)
✓按照IEEE的数值计算标准进行计算
✓提供十分丰富的数值计算函数,方便计算,提高效率
✓Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握
3)Matlab符号计算功能
Matlab和著名的符号计算语言Maple相结合
4)Matlab的绘图功能
Matlab提供丰富的绘图命令,很方便实现数据的可视化
5)Matlab的编程功能
Matlab具有程序结构控制、函数调用、数据结构、输入输出、向对象等程序语言特征,而且简单易学、编程效率高。
通过Matlab提供的编程语言进行编程完成特定的任务
6)Matlab丰富的工具箱(toolbox)
根据专门领域中的特殊需要而设计的各种可选工具箱
SymbolicMathSignalprocessControlSystem
PDEImageProcessSystemIdentification
OptimizationStatistics……
7)Matlab的Simulink动态仿真集成环境
提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能
2、Maple简介
1980年9月,加拿大Waterloo大学的符号计算机研究小组成立,开始了符号计算在计算机上实现的研究项目,数学软件Maple是这个项目的产品.目前,这仍是一个正在研究的项目.
Maple的第一个商业版本是1985年出版的.随后几经更新,到1992年,Windows系统下的Maple2面世后,Maple被广泛地使用,得到越来越多的用户.特别是1994年,Maple3出版后,兴起了Maple热.1996年初,Maple4问世,1998年初,Maple5正式发行.2002年5月面市的Maple8.Matple13.
MAPLE最突出的功能为其符号计算。
MAPLE提供了2000多个数学函数,其范围涉及数学的各个分支:
基本代数、欧氏几何学、数论、有理函数、微积分、微分方程、图形学、线性代数、离散数学、群论等等。
MAPLE在数值计算和数据可视化方面也有较强的能力。
和MATLAB相比,MAPLE的数学计算另有特色,MAPLE能把所求的解析解转换成任意精度的数值解。
对那些没有最终解析解的问题,MAPLE能从中间解析解开始计算数值解。
这将缩短误差的传递途径,从而提高解的精度。
◆Maple是一个具有强大符号运算能力、数值计算能力、图形处理能力的交互式计算机代数系统(ComputerAlgebraSystem).它可以借助键盘和显示器代替原来的笔和纸进行各种科学计算、数学推理、猜想的证明以及智能化文字处理.
◆Maple软件主要由三个部分组成:
用户界面(Iris)、代数运算器(Kernel)、外部函数库(Externallibrary).
◆用户界面和代数运算器是用C语言写成的,只占整个软件的一小部分,当系统启动时,即被装入,主要负责输入命令和算式的初步处理、显示结果、函数图象的显示等.代数运算器负责输入的编译、基本的代数运算(如有理数运算、初等代数运算等)以及内存的管理.
◆Maple的大部分数学函数和过程是用Maple自身的语言写成的,存于外部函数库中.当一个函数被调用时,在多数情况下,Maple会自动将该函数的过程调入内存,
◆一些不常用的函数才需要用户自己调入,如线性代数包、统计包等,这使得Maple在资源的利用上具有很大的优势,只有最有用的东西才留驻内存,这保证了Maple可以在较小内存的计算机上正常运行.
◆用户可以查看Maple的非内存函数的源程序,也可以将自己编的函数、过程加到Maple的程序库中,或建立自己的函数库.
MAPLE语言是一种结构良好、方便实用的高级语言。
它支持多种数据结构,如函数、序列、集合、列表、数组、表。
它包含许多数据操作命令,如类型检验、选择、组合,用户可以查看MAPLE的非内部函数的源程序,用户也可以将自己编写的函数过程加到MAPLE的程序库中,或建立自己的函数库。
MAPLE的最大好处在于它的界面非常友好。
WINDOWS操作系统下的MAPLE更容易学习和使用,而且有很好的帮助系统,多数函数的调用命令与该函数的名字相同,容易记忆。
再之,MAPLE有一定的决策能力。
在一些情况下,MAPLE可以选择合适的算法。
二、Matlab的应用
1、矩阵
(1)矩阵的直接排列输入
例:
>>A=[123;456;789]
✧矩阵用方括号“[]”括起
✧矩阵同一行中的元素之间用空格或逗号分隔
✧矩阵行与行之间用分号分开
✧直接输入法中,分号可以用回车代替
(2)矩阵元素赋值
1)矩阵元素可以是任何数值表达式
例:
>>x=[-1.3,sqrt(3),(1+2+3)*4/5]
2)矩阵元素的单独赋值
例:
>>x(5)=abs(x
(1))
注:
Matlab自动将向量x的长度扩展到5,并将未赋值部分置零。
例:
>>x(5)=abs(x(6))?
?
(3)大矩阵可以把小矩阵作为其元素
例:
>>A=[A;111213]
在原矩阵的下方加一行
(4)矩阵元素的引用
例:
>>A(2,3)
利用小括弧和元素所在的位置(下标)
x(i):
向量x中的第i个元素
A(i,j):
矩阵A中的第i行,第j列元素
(5)多个元素的引用:
冒号的特殊用法
a:
b:
c产生一个由等差序列组成的向量;a是首项,b是公差,c确定最后一项;若b=1,则b可以省略。
例:
>>x=1:
2:
5例:
>>x=2:
1:
5例:
>>x=3:
2:
1
>>y=1:
2:
6>>y=2:
5
(6)矩阵结构形式提取和变换
Fiplr(矩阵左右翻转)fipud(矩阵上下翻转)
Fipdim(矩阵特定维翻转)Rot90(矩阵反时针90翻转)
Diag(产生或提取对角阵)tril(产生下三角)
Triu(产生上三角)
(7)矩阵的计算
A.'(共轭)转置A'转置
rank(A)秩det(A)行列式inv(A)逆矩阵
eig(A)方阵A地特征值
[V,D]=eig(A)返回方阵A地特征值和特征向量
例:
>>A=[135;123;542]
A=
135
123
542
>>A.'
ans=
115
324
532
>>A'
ans=
115
324
532
>>rank(A)
ans=
3
>>det(A)
ans=
1
>>inv(A)
ans=
-8.000014.0000-1.0000
13.0000-23.00002.0000
-6.000011.0000-1.0000
>>eig(A)
ans=
8.6940
-3.6625
-0.0314
>>[V,D]=eig(A)
V=
-0.6040-0.61030.4809
-0.3993-0.2840-0.7921
-0.68980.73950.3760
2、Matlab帮助系统
●联机帮助
help显示指定命令的简短使用说明
例:
>>helpeig
>>helphelp
●详细使用帮助
doc以网页形式显示指定命令的帮助页
例:
>>doceig
●其它相关命令
helpdesk、helpwin、more
3、Matlab查找命令
●lookfor按指定的关键词查询与之相关的命令
例:
>>lookforinverse
●which显示指定函数所在的目录
例:
>>whicheig
●其它相关命令
what、more、cd、dir
4、Matlab变量
●变量命名原则
●
(1)以字母开头
(2)后面可以跟字母、数字和下划线
(3)长度不超过63个字符(6.5版本以前为19个)
(4)变量名区分字母的大小写
●Matlab语句的通常形式
变量=表达式
表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号“=”左边的变量
●分号和续行符的作用
(1)若不想在屏幕上输出结果,可以在语句最后加分号
(2)如果语句很长,可用续行符“…”(三个点)续行
续行符的前面最好留一个空格
●变量的查询
who显示工作空间中的所有变量
whos查看工作空间中变量的详细属性
●系统预定义变量
pi圆周率,其值为imag(log(-1))
inf/Inf无穷大
nan/NaNNot-a-Number,一个不定值,如0/0
eps浮点运算相对精度
i/j虚部单位,即应尽量避免给系统预定义变量重新赋值!
5、Matlab数值运算
●数与算术表达式
(1)Matlab中的数默认是双精度实数,表示方法同C语言3,-9,0.4,1.603e-12,3.23e+20
(2)浮点运算的相对误差为eps
(3)浮点数表示范围为:
10-308~10308
(4)复数的输入
✧z=3+4i(4与i之间不能有空格)
✧z=3+4*i
✧复数作为矩阵元素输入时,加号两边不能有空格!
●数学运算符
+加法-减法*乘法
/和\除法(右除和左除)^幂运算
●关系运算
MATLAB提供了6种关系运算符:
<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。
●逻辑运算
&(逻辑and)|(逻辑or)~(逻辑not)
6、Matlab的输出
●输出格式
ØMatlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”
ØMatlab中数的输出格式可以通过format命令指定
7、变量的存储
●存储当前工作空间中的变量
(1)save将所有变量存入文件matlab.mat
(2)savemydata将所有变量存入指定文件mydata.mat
(3)savemydata.mat将所有变量存入文件mydata.mat
●存储指定的变量
save文件名变量名列表
(变量名列表中各变量之间用空格分隔。
)
例:
>>savemydataAxz
8、变量的读取
●将数据文件中的变量载入当前工作空间
(1)loadmydata载入数据文件中的所有变量
(2)loadmydataAx从数据文件中提取指定变量
●清除当前工作空间中的变量
(1)clear清除当前工作空间中的所有变量
(2)clearAx清除指定的变量
9、脚本文件举例
例:
编写一个脚本文件将华氏温度转化为摄氏温度
●新建一个M文件f2cs.m,内容如下:
clear;%清除当前工作空间中的变量
f=input('PleaseinputFahrenheittemperature:
');
c=5*(f-32)/9;
fprintf('Thecentigradetemperatureis%g\n',c);
●在命令窗口中输入f2cs,即可执行该M文件。
脚本文件运行后,文件中所产生的所有变量都驻留在Matlab当前工作空间,可以用whos查看。
10、if语句举例
while1
n=input('Pleaseentern(nonpositivequit):
');
ifn<=0,break;end
nt=n;
whilen>1
ifrem(n,2)==0
n=n/2;
else
n=3*n+1;
end
fprintf('\nn=%d',n);
end
fprintf('\nn=%disnotweneed!
continue...\n',nt);
end
11、for循环
forvariable=expression
statement(循环体)
end
●表达式expression可以是行向量,也可以是矩阵
●Variable是循环变量
例:
已知y=1+1/3+1/5+…+1/(2n-1),当n=100时,求y的值
clear;
y=0;n=100;
fork=1:
n
y=y+1/(2*k-1);
end
12、函数文件举例
myfliplr.m
functiony=myfliplr(x)
%returnsXwithrowpreservedandcolumns
%flippedintheleft/rightdirection
%
%X=123becomes321
%456654
%
num_col=size(x,2);%取x的列数
y=x(:
num_col:
-1:
1);
13、Matlab作图
(1)二维作图
●基本形式
1)plot(x,y)
✓x,y都是向量,则以x中元素为横坐标,y中元素为纵坐标作平面曲线。
此时x,y必须具有相同长度。
✓x,y都是矩阵,则将x的列和y中相应的列相组合,绘制多条平面曲线。
此时x,y必须具有相同的大小。
✓x是向量,y是矩阵,若x的长度与y的行数相等,则将x与y中的各列相对应,绘制多条平面曲线;否则,若x的长度与y的列数相等,则将x与y中的各行相对应,绘制多条平面曲线。
此时x的长度必须等于y的行数或列数。
●例:
y=cos(x)在[0,4*pi]上的图像
>>x=[0:
0.1:
4*pi];
>>y=cos(x);
>>plot(x,y);
>>x=[0:
0.1:
1];
>>y=x.*exp(-x);
>>plot(x,y)
(2)采用△x=1/(100pi)的步长,绘制连续调制波形y=sin(t)sin(9t)的图像。
>>t=[0:
1/(100*pi):
4];
>>y=sin(t).*sin(9*t);
>>plot(t,y)
>>a=1;
>>t=0:
0.1:
2*pi;
>>x=a.*cos(t);
>>y=sqrt(25-a^2).*sin(t);
>>plot(x,y)
(2)三维作图
●三维曲线:
plot3
设三维曲线的参数方程为:
x=x(t),y=y(t),z=z(t),
则其图形可由下面的命令绘出:
plot3(x,y,z,s)
例:
三维螺旋线
>>t=[0:
0.1:
10*pi];
>>x=2*t;
>>y=sin(t);
>>z=cos(t);
>>plot3(x,y,z)
注:
plot3的用法与plot类似
例:
下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:
x=-8:
.5:
8;
y=x';
x=ones(size(y))*x;
y=y*ones(size(y))';
R=sqrt(x.^2+y.^2)+eps;
z=sin(R)./R;
mesh(z)%%试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?
各语句的意义是:
首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z.用mesh函数即可以得到图形.
●空间曲面mesh,meshc,meshz
mesh(X,Y,Z,C)绘制由矩阵X,Y,Z所确定的曲面网格图,
矩阵C用于确定网格颜色,省略时C=Z。
mesh(Z)绘出矩阵Z的三维消隐图
mesh(x,y,Z)x,y是向量时,length(x)=n,length(y)=m,[m,n]=size(Z)
meshc调用方式与mesh相同,在mesh基础上增加等高线
meshz调用方式与mesh相同,在mesh基础上屏蔽边界面
●绘制由函数z=z(x,y)确定的曲面时,首先需产生一个网格矩阵,然后计算函数在各网格点上的值。
1)网格生成函数:
meshgrid
[X,Y]=meshgrid(x,y)
x,y为给定的向量,X,Y是网格划分后得到的网格矩阵
若x=y,则可简写为[X,Y]=meshgrid(x)
例:
>>x=[-8:
0.5:
8];y=[-8:
0.5:
8];
>>[X,Y]=meshgrid(x,y);
>>r=sqrt(X.^2+Y.^2)+eps;
>>Z=sin(r)./r;
>>mesh(X,Y,Z)
(3)关于MATLAB图形的属性
●点和线的基本属性(属性可以全部指定,也可以只指定其中某几个、排列顺序任意)
plot(x,y,string)
其中string是用单引号括起来的字符串,用来指定图形的属性(点、线的形状和颜色)
>>x=[0:
0.2:
2*pi];
>>plot(x,cos(x));
>>plot(x,cos(x),’r+:
’);
>>plot(x,cos(x),’bd-.’);
>>plot(x,cos(x),’k*-’);
r+:
红色、虚线、离散点用加号
bd-.蓝色、点划线离散点为菱形
k*-黑色、实线离散点用星号
●其他属性
a)标题title(’text’)
b)坐标轴标注
xlabel(’text’)或ylabel(’text’)
c)添加图例
legend(string1,string2,...)
>>legend('cos(x)');
d)在指定地方添加文本
text(x,y,string1,string2,...)
>>text(pi/2,cos(pi/2),'\leftarrowy=cos(x)');
(4)MATLAB图形
1)其他相关命令
a)显示网格gridon或gridoff
b)保持当前窗口的图像holdon或holdoff
c)新建绘图窗口figure(n)
d)划分绘图区域subplot(m,n,p)
将一个绘图窗口分割成m*n个子区域,并按行从左至右依次编号。
p表示第p个绘图子区域。
例:
>>x=-pi:
pi/10:
pi;
>>subplot(2,2,1);plot(x,sin(x));
>>subplot(2,2,2);plot(x,cos(x));
>>subplot(2,2,3);plot(x,x.^2);
>>subplot(2,2,4);plot(x,exp(x));
2)坐标轴控制
坐标轴控制命令:
axis
axis([xmi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业 软件 实习 报告 MATLABMAPLE
![提示](https://static.bdocx.com/images/bang_tan.gif)