文档库 最新最全的文档下载
当前位置:文档库 › Matlab在数值计算方面的应用

Matlab在数值计算方面的应用

Matlab在数值计算方面的应用
Matlab在数值计算方面的应用

Matlab在数值计算方面的应用

摘要:Matlab的名称源自Matrix Laboratory,它的首创者是在数值线性代数领域颇有影响的Cleve MoleAr 博士。Matlab是一种科学计算软件,专门以矩阵的形式处理数据。目前,Matlab软件已经成为了应用最广泛的科学计算工具之一。Matlab可以用来进行如下工作:

●数值分析;

●数值和符号计算;

●工程与科学绘图;

●控制系统的设计与仿真;

●数字图像处理;

●数字信号处理;

●通讯系统设计与仿真;

●财务与金融工程。

尤其是在电子信息领域学科和数学建模领域中,Matlab已经成为了学术研究、论文写作的有力工具。

Matlab成为许多学科的解题工具,将Matlab融入其它课程的学习中,可以大大提高运算效率和准确性。随着计算机的普及和国民文化素质的整体提高,科学计算将会更加普及。Matlab在矩阵及数值计算、多项式和线性代数、符号数学的基本方法等方面都有较好的应用下面我从两点阐述Matlab在数学上面的应用:一、Matlab在数值运算上的应用;二、Matlab在绘图方面的应用。

Matlab的数值运算功能

Matlab是一个包含计算算法的集合。其拥有800多个工程中要用到的数学运算函数,可以方便实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算相同的情况下,使用Matlab的编程工作量会大大减少。Matlab的这些函数集包括从最简单的函数到诸如矩阵、特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题大致包括矩阵运算和现行方程组的求解,微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、复数的各种运算、三角函数和其它初等数学运算、多维数组操作以及建模动态仿真等。

1.数组运算

一般的,数组是有序数据的集合,在大多数编程语言中,数组的每一个成员(元素)都属于同一种数据类型,它们使用同一个数组名称和不同的下标来惟一确定数组中的成员(元素)。其中,下标是指数组元素在数组中的序号。

对于MATLAB 而言,大多数数据类型的数组每一个元素都是同一个数据类型的元素,而对于其特殊的元胞数组则不然。

和一般的编程语言类似,Matlab语言的数组也有一维、二维和多维数组的区别。而在Matlab中一般不存在数组的数组,除非在Matlab 语言中使用Java 数据对象。如:

已知A=[12 21 56],B=[34 45 78]。求A-B,A+B,A.*B,A/B的值。代码:

>> A=[12 21 56],B=[34 45 78],C=A-B,D=A+B,E=A.*B,F=A/B, 运行结果:

A =12 21 56

B =34 45 78

C =-22 -24 -22

D =46 66 134

E =408 945 4368

F =0.6175

注意:两个数组运算时,其元素个数必须相同。而且数组的表示和矩阵有惊人的相似,所以数组的乘表示为(.*).

2.三角函数运算

往往我们需要计算三角函数的值的时候,都是计算一些特殊角的值活着用计算器计算取其近似值。但是,在工程中我们涉及到的三角函数往往都不是特殊角的函数值,而且一般情况下都是到了最后才需要一个非常精确的值,但计算器一般都只能一个一个的算取其近似值,最后的计算值已经与我们实际需要的有了很大的误差。介于这种

情况,我们首选的应该是Matlab。

例如:计算 sin(7)+cos(9)+tan(5) 的值

用计算器逐个计算求和值则为:0.08745 (在数值计算中保留五位已经算是过多的了)

用Matlab计算则为:

3.矩阵运算

在Matlab中,矩阵的概念就是线性代数中定义的矩阵的概念——矩阵是用一对圆括号或者方括号括起来,符合一定规则的数学对象。例如:

B=[b11 b12 b13;b21 b22 b23;b31 b32 b33]

就是一个三行三列的方阵。对于编程语言,矩阵就是二维的数组,而由于一般的编程语言仅能处理单个元素的运算,对于矩阵或者向量的处理,很难按照线性代数的运算法则,将其作为一个整体来处理,从而增加了程序员的工作量,也降低了程序的执行效率和开发周期。把Matlab运用到矩阵的运算中就可以很好的解决这一难题。

例如:已知A=[1 2 3;5 6 8;14 15 16],B=[11 12 13;2 3 5;6 5 4],求A',B',A*B, B*A,A/B的值。

解:代码:

>> A=[1 2 3;5 6 8;14 15 16],B=[11 12 13;2 3 5;6 5 4],C=A',D=B',E=A*B,F=B*A,G=A/B;

结果:

联系矩阵,还可以用Matlab来求线性方程的解。如:

+2x3=0

x

2x2-x3=0

-x1+2x2-x3=0

解:

3.多项式的生成与表达

已知向量A=[1 -34 -80 0 0],用此向量构造一多项式。

(x-1)(x+34)(x+80)(x-0)(x-0)

以上只是简单的例子,同样的Matlab进行复杂的运算也是非常方便的,为科学研究和学习提供了极大的方便。

Matlab在绘图方面的应用

Matlab自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图形处理、动画和表达式作图,可用于科学计算和工程绘图。

就说个我们现实中的例子。比如,老是用PPT给同学们展示三角函数

的图形的时候就可以用Matlab先把其函数图形做出,在通过一系列手段放到PPT展示给同学们。

例如:画出Y=sin(3X+2*pi)-5在[-1,1]之间的图像

解:

总而言之,把Matlab的数值运算与绘图功能充分的应用,不但可以普及计算机的利用更可以提高学习者的兴趣,为其他学科的学习提供了较好的计算工具。而对于我们当代的理工科大学生来说,掌握Matlab不仅仅是掌握一门计算机语言,更重要的是掌握了如何站在现代计算机技术条件下学习科学理论的方法和武器。懂得Matlab的基本编程思想和方法,能够利用Matlab对所学的基础课程进行上机模拟实验和数值计算,从而通过Matlab编程实验来验证和巩固所学的理工科的理论知识,为以后所要学习的课程打下扎实的基础。

科学计算与MATLAB语言考试答案

1 单选(2分) 利用MATLAB求解科学计算问题的优势是()。 得分/总分 ? A. 算法最优 ? B. 不需要编写程序 ? C. 程序执行效率高 ? D. 编程效率高 正确答案:D你没选择任何选项 2 单选(2分) 在MATLAB命令行窗口输入命令时,可使用续行符,其写法是()。 得分/总分 ? A. 省略号(…) ? B. 分号(;) ? C. 三个小数点(…) ? D. 百分号(%) 正确答案:C你没选择任何选项 3

下列语句执行后,D的值为()。 1.A=[1:3;4:6]; 2.D=sub2ind(size(A),[1,1],[2,3]) 得分/总分 ? A. 3 6 ? B. 2 5 ? C. 3 5 ? D. 4 5 正确答案:C你没选择任何选项 4 单选(2分) ceil(-2.1)+floor(-2.1)+fix(-2.1)的结果为()。 得分/总分 ? A. -7 ? B. -6 ? C. -5 ? D. -9 正确答案:A你没选择任何选项 5

下列语句执行后,x的值是()。 1.log=1:5; 2.x=log(1) 得分/总分 ? A. ? B. 1 ? C. 数学常数e ? D. 报错 正确答案:B你没选择任何选项 6 单选(2分) 下列语句执行后,c的值是()。 1.ch=['abcdef';'123456']; 2.c=char(ch(2,4)-1) 得分/总分 ? A. '4' ? B. 4 ? C. '3' ? D. 3

7 单选(2分) 产生和A同样大小的全0矩阵的函数是()。 得分/总分 ? A. zero(size(A)) ? B. zeros(size(A)) ? C. size(zero(A)) ? D. size(zeros(A)) 正确答案:B你没选择任何选项 8 单选(2分) 语句x=speye(5)==eye(5)执行后,则下列说法中正确的是()。 得分/总分 ? A. x是5阶全1矩阵,且采用稀疏存储方式 ? B. x是5阶全1矩阵,且采用完全存储方式 ? C. x是5阶单位矩阵,且采用稀疏存储方式 ? D. x是5阶单位矩阵,且采用完全存储方式

Matlab分布式计算工具箱使用指南

Matlab分布式计算工具箱使用指南 使用Matlab进行分布式计算需要两个产品: 1、分布式计算工具箱(Distributed Computing Toolbox) 2、Matlab分布计算引擎MDCE(Matlab Distributed Computer Engine) MDCE主要用于执行Clinet Session中定义的job和task 一、安装MDCE MDCE安装在D:\Program Files\MATLAB\R2008a\toolbox\distcomp\bin目录下: 在Matlab的command windows中执行 mdce install %安装引擎 mdce start %启动引擎 执行上面两条命令后,分布式计算引擎服务程序就安装完毕了。MDCE就是一个服务进程,在使用MDCE 之前需要首先启动它。 二、启动一个Job Manager startjobmanager -name matlabsky -v %启动一个名为matlabsky的作业管理进程 jm = findResource('scheduler','type','jobmanager', 'Name', 'matlabsky'); %找出PC上有效的分布计算资源 三、启动Worker startworker -name worker1 out = findResource('worker') waitForState(job, 'finished',1000) jm=findResource('scheduler','type','jobmanager','name','default_jobma nager'); 四、分布式计算工具箱示例 在运行示例之前,必须先安装 MDCE,然后启动一个Job Manager 和若干个Worker,并且在Job Manager中注册Worker。要查看MDCE进程的状态,可以用nodestatus.bat批处理文件来查看。如果在Job Manager中没有注册Worker,那么Job Manager就没有办法把任务分配给Worker计算,当调用waitForState(job, 'finished')命令时,就会发生死锁。 1、Programming a Basic Job with a Job Manager jm=findResource('scheduler','type','jobmanager','name','ccy'); j = createJob(jm); createTask(j, @sum, 1, {[1 1]}); createTask(j, @sum, 1, {[2 2]}); createTask(j, @sum, 1, {[3 3]}); submit(j); waitForState(j) results = getAllOutputArguments(j)

实验1熟悉matlab环境和基本操作

实验1 熟悉Matlb环境及基本操作 实验目的: 1.熟悉Matlab环境,掌握Matlab的主要窗口及功能; 2.学会Matlab的帮助使用; 3.掌握向量、矩阵的定义、生成方法和基本运算; 4.掌握Matlab的基本符号运算; 5.掌握Matlab中的二维图形的绘制和控制。 实验内容: 1.启动Matlab,说明主窗口、命令窗口、当前目录窗口、工作空间窗口、历史窗口、图形窗口、M文件编辑器窗口的功能。 2.实例操作Matlab的帮助使用。 3.实例操作向量、矩阵的定义、生成方法和基本运算。 4.实例操作Matlab的基本符号运算。 5.实例操作Matlab中的二维图形绘制和控制。 实验仪器与软件: 1.CPU主频在2GHz以上,内存在512Mb以上的PC; 2.Matlab 7及以上版本。 实验讲评: 实验成绩: 评阅教师: 年月日

实验1 熟悉Matlab环境及基本操作 一、Matlab环境及主要窗口的功能 运行Matlab安装目录下的matlab.exe文件可启动Matlab环境,其默认布局如下图: 其中, 1.主窗口的功能是:主窗口不能进行任何计算任务操作,只用来进行一些整体的环境参数设置,它主要对6个下拉菜单的各项和10个按钮逐一解脱。 2.命令窗口的功能是:对MATLAB搜索路径中的每一个M文件的注释区的第一行进行扫描,一旦发现此行中含有所查询的字符串,则将该函数名及第一行注释全部显示在屏幕上。 3. 历史窗口的功能是:历史窗口显示命令窗口中的所有执行过的命令,一方面可以查看曾经执行过的命令,另一方面也可以重复利用原来输入的命令行,可以从命令窗口中直接通过双击某个命令行来执行该命令,

计算方法_全主元消去法_matlab程序

%求四阶线性方程组的MA TLAB程序 clear Ab=[0.001 2 1 5 1; 3 - 4 0.1 -2 2; 2 -1 2 0.01 3; 1.1 6 2.3 9 4];%增广矩阵 num=[1 2 3 4];%未知量x的对应序号 for i=1:3 A=abs(Ab(i:4,i:4));%系数矩阵取绝对值 [r,c]=find(A==max(A(:))); r=r+i-1;%最大值对应行号 c=c+i-1;%最大值对应列号 q=Ab(r,:),Ab(r,:)=Ab(i,:),Ab(i,:)=q;%行变换 w=Ab(:,c),Ab(:,c)=Ab(:,i),Ab(:,i)=w;%列变换 n=num(i),num(i)=num(c),num(c)=n;%列变换引起未知量x次序变化for j=i:3 Ab(j+1,:)=-Ab(j+1,i)*Ab(i,:)/Ab(i,i)+Ab(j+1,:);%消去过程 end end %最后得到系数矩阵为上三角矩阵 %回代算法求解上三角形方程组 x(4)=Ab(4,5)/Ab(4,4); x(3)=(Ab(3,5)-Ab(3,4)*x(4))/Ab(3,3); x(2)=(Ab(2,5)-Ab(2,3)*x(3)-Ab(2,4)*x(4))/Ab(2,2); x(1)=(Ab(1,5)-Ab(1,2)*x(2)-Ab(1,3)*x(3)-Ab(1,4)*x(4))/Ab(1,1); for s=1:4 fprintf('未知量x%g =%g\n',num(s),x(s)) end %验证如下 %A=[0.001 2 1 5 1; 3 -4 0.1 -2 2;2 -1 2 0.01 3; 1.1 6 2.3 9 4]; %b=[1 2 3 4]'; %x=A\b; %x1= 1.0308 %x2= 0.3144 %x3= 0.6267 %x4= -0.0513

MATLAB精通科学计算_偏微分方程求解

一、Maple V 系统 Maple V是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple V的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。 Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。 二、MATLAB 系统 MATLAB原是矩阵实验室(Matrix Laboratory)在70年代用来提供Linpack和Eispac k软件包的接口程序,采用C语言编写。从80年代出现3.0的DOS版本,逐渐成为科技计算、视图交互系统和程序语言。MATLAB可以运行在十几个操作平台上,比较常见的有基于W indows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。 MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x版本还包含一套几十个的PDF文件,从MATLAB的使用入门到其他专题应用均有详细的介绍。 MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的E ditor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。 三、MathCAD 系统 MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件。从早期的DOS下的1. 0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Map le强大的符号计算能力,使得它发生了一个质的飞跃。 MathCAD是集文本编辑、数学计算、程序编辑和仿真于一体的软件。MathCAD7.0 Profe ssional(专业版)运行在Win9X/NT下,它的主要特点是输入格式与人们习惯的数学书写格式很近似,采用WYSWYG(所见所得)界面,特别适合一般无须进行复杂编程或要求比较特殊的计算。MathCAD 7.0 Professional 还带有一个程序编辑器,对于一般比较短小,或者要求计算速度比较低时,采用它也是可以的。这个程序编辑器的优点是语法特别简单。 MathCAD可以看作是一个功能强大的计算器,没有很复杂的规则;同时它也可以和Wor d、Lotus、WPS2000等字处理软件很好地配合使用,可以把它当作一个出色的全屏幕数学公式编辑器。 四、Mathematica 系统 Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符

MATLAB分布式并行计算服务器配置和使用方法Word版

Windows下MATLAB分布式并行计算服务器配置和使用方 法 1MATLAB分布式并行计算服务器介绍 MATLAB Distributed Computing Server可以使并行计算工具箱应用程序得到扩展,从而可以使用运行在任意数量计算机上的任意数量的worker。MATLAB Distributed Computing Server还支持交互式和批处理工作流。此外,使用Parallel Computing Toolbox 函数的MATLAB 应用程序还可利用MATLAB Compiler (MATLAB 编译器)编入独立的可执行程序和共享软件组件,以进行免费特许分发。这些可执行应用程序和共享库可以连接至MATLAB Distributed Computing Server的worker,并在计算机集群上执行MATLAB同时计算,加快大型作业执行速度,节省运行时间。 MATLAB Distributed Computing Server 支持多个调度程序:MathWorks 作业管理器(随产品提供)或任何其他第三方调度程序,例如Platform LSF、Microsoft Windows Compute Cluster Server(CCS)、Altair PBS Pro,以及TORQUE。 使用工具箱中的Configurations Manager(配置管理器),可以维护指定的设置,例如调度程序类型、路径设置,以及集群使用政策。通常,仅需更改配置名称即可在集群间或调度程序间切换。 MATLAB Distributed Computing Server 会在应用程序运行时在基于用户配置文件的集群上动态启用所需的许可证。这样,管理员便只需在集群上管理一个服务器许可证,而无需针对每位集群用户在集群上管理单独的工具箱和模块集许可证。 作业(Job)是在MATLAB中大量的操作运算。一个作业可以分解不同的部分称为任务(Task),客户可以决定如何更好的划分任务,各任务可以相同也可以不同。MALAB中定义并建立作业及其任务的会话(Session)被称为客户端会话,通常这是在你用来编写程序那台机器上进行的。客户端用并行计算工具箱来定义和建立作业及其任务,MDCE通过计算各个任务来执行作业并负责把结果返

科学计算与MATLAB语言(第四课)

第四讲绘图功能

作为一个功能强大的工具软件,Matlab 具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。

4.1 二维图形 一、plot函数 函数格式:plot(x,y)其中x和y为坐标向量函数功能:以向量x、y为轴,绘制曲线。【例1】在区间0≤X≤2 内,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y)

一、plot函数 【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。

一、plot函数 (一)线型与颜色 格式:plot(x,y1,’cs’,...) 其中c表示颜色,s表示线型。 【例3】用不同线型和颜色重新绘制例4.2图形,其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。

一、plot函数 (二)图形标记 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本');

中南大学材料学院科学计算与MATLAB考试题库

练习题 1.求函数在指定点的数值导数 x=sym('x'); >> y=[x x.^2 x.^3;1 2*x 3*x.^2;0 2 6*x]; >> x=1; >> eval(diff(y)) ans = 1 2 3 0 2 6 0 0 6 >> x=2; >> eval(diff(y)) ans = 1 4 12 0 2 12 0 0 6 >> x=3; >> eval(diff(y)) ans = 1 6 27 0 2 18 0 0 6 2.求下列函数导数 (1) x=sym('x'); >> y=x^10+10^x+(log(10))/log(x); >> diff(y) ans = 10*x^9+10^x*log(10)-2592480341699211/1125899906842624/log(x)^2/x (2) x=sym('x');

>> y=log(1+x); >> x=1; >> eval(diff(y,2)) %在x=1的条件下对y表达式求两次导数后导函数的值 ans = -0.2500 3.用数值方法求下列积分 首先先讲一下trapz的用法,如下题 t=0:0.001:1; >> y=t; >> trapz(t,y) ans = 0.5000 (1) >> x=1:0.01:5; >> y=(x.^2).*sqrt(2*x.^2+3); >> trapz(x,y) ans = 232.8066 (2) x=pi/4:0.01:pi/3; >> y=x./(sin(x).^2); >> trapz(x,y) ans = 0.3810 第三题拟合曲线题 x=[0:0.1:1]; >> y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; >> a=polyfit(x,y,2); >> x=[0.05:0.2:1.05]; >> y=a(3)+a(2)*x+a(1)*x.^2 %注意x要在y前先赋值,不然y不会运行为最新的x对呀的y值 y =

《Matlab与科学计算》作业 2010010099

《Matlab与科学计算》作业 第一章MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令窗口、当前目录浏览器窗口、工作空间窗口、变量编辑器窗口、M文件编辑/调试器窗口、程序性能剖析窗口、MATLAB帮助。 命令窗口是MATLAB命令操作的最主要窗口,可以把命令窗口当做高级的“草稿纸”。在命令窗口中可以输入各种MATLAB的命令、函数和表达式,并显示除图形外的所有运算结果。 历史命令窗口用来记录并显示已经运行过的命令、函数和表达式,并允许用户对它们进行选择、复制和重运行,用户可以方便地输入和修改命令,选择多行命令以产生M文件。 当前目录窗口用来设置当前目录,可以随时显示当前目录下的M、MKL等文件的信息,扬文件类型、文件名、最后个修改时间和文件的说明信息等,并可以复制、编辑和运行M文件及装载MAT数据文件。 工作空间窗口用来显示所有MATLAB工作空间中的变量名、数据结构、类型、大小和字节数。 2、熟悉课本中表格1.4、1.5、1.6、1.7、1.8的内容。 3、如何生成数据文件?如何把数据文件中的相关内容输入到工作空间中,用实例进行操作。 生成数据文件:

把数据文件中的相关内容输入到工作空间中: 结果: 4、在工作空间中可以通过哪些命令管理变量,写出每种语法的具体操作过程。答:(1)把工作空间中的数据存放到MAT数据文件。 语法:save filename 变量1 变量2 ……参数。 (2)从数据文件中取出变量存放到工作空间。 语法:load filename 变量1 变量2 ……。

《MATLAB与科学计算》期末论文

盐城师范学院《MATLAB与科学计算》期末论文 2016-2017学年度第一学期 用MATLAB解决解析几何的图形问题 学生姓名吴梦成 学院数学与统计学院 专业信息与计算科学 班级数15(5)信计 学号 15213542

用MATLAB 解决解析几何的图形问题 摘 要 将 MATLAB 的图形和动画功能都用于解析几何教学,可使教学形象生动。以图形问题为例,详细给出了实例的程序编写和动画实现过程 。在解析几何教学中有一定的应用价值。 【关键词】: MATLAB ; 解析几何 ;图形 ; 动 画;编程 1 引 言 在解析几何的教学中,使用传统的教学方法。许多曲线及曲面的形成过程与变换过程只通过传统的教师讲授静态图示就很难形象生动地表示出来 。在解析几何教学中使用MATLAB 软件辅助教学,不仅可以很容易绘制出复杂的立体图形。把曲线、曲面的形成和变化过程准确地模拟出来 ,而且还能够对它们进行翻转 、旋转 ,甚 至还能够轻而易举地实现图形的动画效果!这对提高教学效率和培养学生的空间想象能力可起到事半功倍的效果。下面结合实例从几个方面说明MATLAB 在解析几何画图方面的应用。 2 利用 MATLAB 绘制三维曲线 在空间解析几何中,各种曲线和曲面方程的建立都离不开图形 ,而空间曲线和曲面图形既难画又费时。借助MATLAB 的绘图功能 ,可以快捷 、 准确地绘出图形,使教学变得形象 、生动 。有利于学生观察三维空间图形的形状 , 掌握图形的性质 。 一 般地 ,MATLAB 可用plot3,ezplot3,comet3等函数来各种三维曲线 。 例如画螺旋曲线的图形,其参数方程设为 :t at cos x =,t b sin t y -=,ct =z 。使用 plot3语句画螺旋曲线图形的方法如下( 设a =2 ,b=4,c=3): );*3),sin(*.*4),cos(*.*2(3;*10:50/:0t t t t t plot pi pi t -= MATLAB 用两条简单的语句就可以画出螺旋 曲线(图1),但上述方法是静态的 ,为了体

科学计算与matlab1.5

单元测验已完成成绩:分 1 【单选题】 MATLAB一词来自()的缩写。 A、 Mathematica Laboratory B、 Matrix Laboratory C、 MathWorks Lab D、 Matrices Lab 我的答案:B得分:分 2 【单选题】 下列选项中能反应MATLAB特点的是()。 A、 算法最优 B、 不需要写程序 C、 程序执行效率高 D、 编程效率高

我的答案:D得分:分 单元测验已完成成绩:分 1 【单选题】 当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。 A、 冒号(:) B、 逗号(,) C、 分号(;) D、 百分号(%) 我的答案:C得分:分 2 【单选题】 fix(264/100)+mod(264,10)*10的值是()。 A、 86 B、 62 C、 423 D、

42 我的答案:D得分:分 3 【单选题】 在命令行窗口输入下列命令后,x的值是()。 >> clear >> x=i*j A、 不确定 B、 -1 C、 1 D、 i*j 我的答案:B得分:分 4 【单选题】 使用语句x=linspace(0,pi,6)生成的是()个元素的向量。 A、 8 B、 7 C、 6

D、 5 我的答案:C得分:分 5 【单选题】 ceil的结果为()。 A、 -2 B、 -3 C、 1 D、 2 我的答案:A得分:分 6 【单选题】 eval('sqrt(4)+2')的值是()。 A、 sqrt(4)+2 B、 4 C、 2 D、

2+2 我的答案:B得分:分 7 【单选题】 已知a为3×5矩阵,则执行完a(:,[2,4])=[]后()。 A、 a变成行向量 B、 a变为3行2列 C、 a变为3行3列 D、 a变为2行3列 我的答案:C得分:分 8 【单选题】 在命令行窗口输入以下命令 >> A=[1:3;4:6]; >> D=sub2ind(size(A),[1,1],[2,3]) D的值为()。 A、 3 6 B、 2 5 C、 4 5

MATLAB分布式并行计算环境

前言:之前在本博客上发过一些关于matlab并行计算的文章,也有不少网友加我讨论关于这方面的一些问题,比如matlab并行计算环境的建立,并行计算效果,数据传递等等,由于本人在研究生期间做论文的需要在这方面做过一些研究,但总体感觉也就是一些肤浅的应用,现已工作,已很少再用了,很多细节方面可能也记不清了,在这里将以前做的论文内容做一些整理,将分几个小节,对matlab并行计算做个一个简要的介绍,以期对一些初学者有所帮助,当然最主要的还是多看帮助文档及相关技术文章!有不当之处敬请各位网友指正, 3.1 Matlab并行计算发展简介 MATLAB技术语言和开发环境应用于各个不同的领域,如图像和信号处理、控制系统、财务建模和计算生物学。MA TLAB通过专业领域特定的插件(add-ons)提供专业例程即工具箱(Toolbox),并为高性能库(Libraries)如BLAS(Basic Linear Algebra Subprograms,用于执行基本向量和矩阵操作的标准构造块的标准程序)、FFTW(Fast Fourier Transform in the West,快速傅里叶变换)和LAPACK(Linear Algebra PACKage,线性代数程序包)提供简洁的用户界面,这些特点吸引了各领域专家,与使用低层语言如C语言相比可以使他们很快从各个不同方案反复设计到达功能设计。 计算机处理能力的进步使得利用多个处理器变得容易,无论是多核处理器,商业机群或两者的结合,这就为像MATLAB一样的桌面应用软件寻找理论机制开发这样的构架创造了需求。已经有一些试图生产基于MATLAB的并行编程的产品,其中最有名是麻省理工大学林肯实验室(MIT Lincoln Laboratory)的pMATLAB和MatlabMPI,康耐尔大学(Cornell University)的MutiMATLAB和俄亥俄超级计算中心(Ohio Supercomputing Center)的bcMPI。 MALAB初期版本就试图开发并行计算,80年代晚期MA TLAB的原作者,MathWorks 公司的共同创立者Cleve Moler曾亲自为英特尔HyperCube和Ardent电脑公司的Titan超级计算机开发过MATLAB。Moler 1995年的一篇文章“Why there isn't a parallel MATLAB?[**]”中描述了在开了并行MA TLAB语言中有三个主要的障碍即:内存模式、计算粒度和市场形势。MATLAB全局内存模式的多数并行系统的分布式模式意味着大数据矩阵在主机和并行机之间来回传输。与语法解析和图形例程相比,那时MA TLAB只花了小部分的时间行例程上,这使得并行上的努力并不是很有吸引力。最后一个障碍对于一个资源有限的组织来讲确实是一个现实,即没有足够多的MA TLAB用户将其用于并行机上,因此公司还是把注意力放在单个CPU的MA TLAB开发上。然而这并不妨碍一些用户团体开发MA TLAB并行计算功能,如上面提到的一些实验室和超级计算中心等。 有几个因素使并行MATLAB工程在MathWorks公司内部变得很重要,首先MATALB 已经成长为支持大规模工程的领先工程技术计算环境;其次现今的微处理器可以有两个或四个内核,将来可能会更多甚至个人并行机,采用更复杂的分层存储结构,MA TLAB可以利用多处理器计算机或网络机群;最后是用户团体中要求全面成熟解决方案的呼声也越来越高[] Cleve Moler. Parallel MATLAB: Multiple Processors and Multi Cores, Th eMathWorks News&Notes 。 有三种途径可以用MATLAB来创建一个并行计算系统。第一种途径是主要是把MATLAB或相似程序翻译为低层语言如C或FORTRAN,并用注解和其它机制从编译器中生成并行代码,如CONLAB和FALCON工程就是这样。把MATLAB程序翻译为低层C或FORTRAN语言是个比较困难的问题,实际上MathWorks公司的MA TLAB编译软件就能转换生成C代码到生成包含MATLAB代码和库并支持各种语言特性的包装器。

(整理)matlab16常用计算方法.

常用计算方法 1.超越方程的求解 一超越方程为 x (2ln x – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 01002ln()3 x x =- 其中x 0是一个初始值,由此计算终值x 。取最大误差为e = 10-4,当| x - x 0| > e 时,就用x 的值换成x 0的值,重新进行计算;否则| x - x 0| < e 为止。 [程序]P1_1abs.m 如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)>1000,break ,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)<1e-4,break ,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,'.-','LineWidth',2,'MarkerSize',12)%画迭代线'.-'表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title('超越方程的迭代折线','fontsize',fs)%标题 xlabel('\itn','fontsize',fs) %x 标签 ylabel('\itx','fontsize',fs) %y 标签 text(length(xx),xx(end),num2str(xx(end)),'fontsize',fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 100()2ln()3f x x x =-- MATLAB 求零函数为fzero ,fzero 函数的格式之一是 x = fzero(f,x0) 其中,f 表示求解的函数文件,x0是估计值。fzero 函数的格式之二是 x = fzero(f,[x1,x2])

Matlab与科学计算样题(加主观题答案)

Matlab 与科学计算考试样题(客观题) 1 下面的MATLAB 语句中正确的有: a) 2a =pi 。 b) record_1=3+4i c) a=2.0, d) c=1+6j 2. 已知水的黏度随温度的变化公式如下,其中a=0.03368,b=0.000221,计算温度t 为20,30,40度时的粘度分别是: 2 1at bt μμ=++0μ为0℃水的黏度,值为31.78510-?;a 、b 为常数,分别为0.03368、0.000221。 3. 请补充语句以画出如图所示的图形: [x,y]=meshgrid(-2:0.1:2, -2:0.1:2)。 Z=x.*exp(-x.^2-y.^2)。 。 a) Plot3(x,y,Z) b) plot3(x,y,Z) c) mesh(x,y,Z) d) plot3(x,y,z) 2 a) 0.4900 1.2501 0.8560 b) 0.8560 1.2501 0.4900 c) -0.6341 3.8189 -3.7749 d) 3.8189 -3.7749 2.8533 解释说明:

>> x=0.5:0.5:3.0。 >> y=[1.75,2.45,3.81,4.80,8.00,8.60]。 >> a=polyfit(x,y,2) a = 0.4900 1.2501 0.8560 >> x1=[0.5:0.25:3.0]。 >> y1=a(1)*x1.^2+a(2)*x1+a(3) >> plot(x,y,'*') >> hold on >> plot(x1,y1,'--r') 5. 求方程在 x=0.5附近的根. 21 x x += a) 0.6180 b) -1.1719e-25 c) -1 d) -1.6180 6. 用Newton-Cotes方法计算如下积分 1 5 x? (a)133.6625 (b)23.8600 (c) 87.9027 (d) -1.6180 7. y=ln(1+x),求x=1时y" a) -0.25 b) 0.5 c) -0.6137 d) -1.6137 8.某公司用3台轧机来生产规格相同的铝合金薄板。取样测量薄板的 厚度,精确至‰厘M。得结果如下: 轧机1:0.236 0.238 0.248 0.245 0.243 轧机2:0.257 0.253 0.255 0.254 0.261 轧机3:0.258 0.264 0.259 0.267 0.262 计算方差分析结果,并判定各台轧机所生产的薄板的厚度有无显著的差异? a) p=1.3431e-005,没有显著差异。

MATLAB并行计算解决方案

龙源期刊网 https://www.wendangku.net/doc/a611427235.html, MATLAB并行计算解决方案 作者:姚尚锋刘长江唐正华 来源:《计算机时代》2016年第09期 DOI:10.16644/https://www.wendangku.net/doc/a611427235.html,33-1094/tp.2016.09.021 摘要:为了利用分布式和并行计算来解决高性能计算问题,本文介绍了利用MATHWORKS公司开发的并行计算工具箱在MATLAB中建模与开发分布式和并行应用的一些方法;包括并行for循环、批处理作业、分布式数组、单程序多数据(SPMD)结构等。用这些方法可将串行MATLAB应用程序转换为并行MATLAB应用程序,且几乎不需要修改代码和低级语言编写程序,从而提高了编程和程序运行的效率。用这些方法来执行模型,可以解决更大的问题,覆盖更多的仿真情景并减少桌面资源。 关键词:建模;仿真;并行计算; MATLAB 中图分类号:TP31 文献标志码:A 文章编号:1006-8228(2016)09-73-03 Parallel computing solutions with MATLAB Yao Shangfeng, Liu Changjiang, Tang Zhenghua, Dai Di (Simulation Training Center, Armored Force Institute, Bengbu, Anhui 233050, China) Abstract: For the use of distributed and parallel computing to solve the problem of high-performance computing, this article describes the use of Parallel Computing Toolbox developed by MATHWORKS Company and some methods of parallel applications, including parallel for loop,batch jobs, distributed arrays, Single Program Multiple Data (SPMD) structure. by the methods, the serial MATLAB applications can be converted to parallel MATLAB applications,and almost no need to modify the code and program in low level languages, thereby increasing the efficiency of programming and operation. Use this method to perform model can solve bigger problems, cover more simulation scenarios and reduce the desktop resources. Key words: modeling; simulation; parallel computing; MATLAB 0 引言 用户面临着用更少的时间建立复杂系统模型的需求,他们使用分布式和并行计算来解决高性能计算问题。MATHWORKS公司开发的并行计算工具箱(Parallel Computing Toolbox)[1-5]可以在MATLAB中建模和开发分布式和并行应用,并在多核处理器和多核计算机中执行,解决计算、数据密集型问题[2],而且并不离开即使的开发环境;无需更改代码,即可在计算机

MATLAB环境熟悉及基本操作

实验一 MA TLAB 环境熟悉及基本操作 1. 命令窗口运行入门 1-1 求2 ))39(212(2 -*+的算术运算结果 1-2 简单矩阵A 的生成 1-3 绘制图形比较函数曲线5432x x x x 、、、,要求(一)四个曲线在一个图形文件窗口(二) 子图 2. 命令窗口常用的基本操作 1-4 若用户想计算51) 2sin(21+=πy ,51) 2cos(22+=πy 的值 1-5 变量的保存:save 和load 命令,将已生成的变量保存,名为×××,存入目录C :\my_dir 3. 系统的在线帮助 1-6 help sqrt/help syntax/help (回车) 1-7 lookfor line(查找与直线、线性问题有关的函数) 1-8 help 菜单 实验二 数组(矩阵)及其运算 2-1 用户不能清除的固定变量ans 、eps 、pi 、i 、j 、NaN 、Inf 等 如>>eps Ans=2.2204e-016 2-2 矩阵的创建 (1)>>a=[1 2 3;4 5 6;7 8 9] >>a=[1:2;4:6;7:9]; a1=1:6 (2)利用MA TLAB 内部函数产生矩阵 >>b=eye(3) >>c=ones(2,5) >>d=zeros(3,2) >>e=linspace(-3,6,10) %注意三个参数的含义 >>f=logspace(1,6,5) %注意三个参数的含义 >>R=rand(1,6) (3) 访问元素 >>aa=a(1,2)+a(2,3) >>bb=a(4)+a(8) >>a(end-2:end,2) %在下标中可以直接用end 表示这一维的最后一个元素 (4) 矩阵操作 >>A=[1,2,3;4,5,6;7,8,9] >>B=diag(A) >>C=diag(B) >>D=rot90(A) >>E=reshape(D,1,9) %注意这三个参数的含义 2-3 矩阵运算 (1)算术运算 + - * / \ ^ ‘

matlab用于计算方法的源程序

1、Newdon迭代法求解非线性方程 function [x k t]=NewdonToEquation(f,df,x0,eps) %牛顿迭代法解线性方程 %[x k t]=NewdonToEquation(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:原函数,定义为内联函数 ?:函数的倒数,定义为内联函数 %x0:初始值 %eps:误差限 % %应用举例: %f=inline('x^3+4*x^2-10'); ?=inline('3*x^2+8*x'); %x=NewdonToEquation(f,df,1,0.5e-6) %[x k]=NewdonToEquation(f,df,1,0.5e-6) %[x k t]=NewdonToEquation(f,df,1,0.5e-6) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquation(f,df,1) if nargin==3 eps="0".5e-6; end tic; k=0; while 1 x="x0-f"(x0)./df(x0); k="k"+1; if abs(x-x0) < eps || k >30 break; end x0=x; end t=toc; if k >= 30 disp('迭代次数太多。'); x="0"; t="0"; end

2、Newdon迭代法求解非线性方程组 function y="NewdonF"(x) %牛顿迭代法解非线性方程组的测试函数 %定义是必须定义为列向量 y(1,1)=x(1).^2-10*x(1)+x(2).^2+8; y(2,1)=x(1).*x(2).^2+x(1)-10*x(2)+8; return; function y="NewdonDF"(x) %牛顿迭代法解非线性方程组的测试函数的导数 y(1,1)=2*x(1)-10; y(1,2)=2*x(2); y(2,1)=x(2).^+1; y(2,2)=2*x(1).*x(2)-10; return; 以上两个函数仅供下面程序的测试 function [x k t]=NewdonToEquations(f,df,x0,eps) %牛顿迭代法解非线性方程组 %[x k t]=NewdonToEquations(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:方程组(事先定义) ?:方程组的导数(事先定义) %x0:初始值 %eps:误差限 % %说明:由于虚参f和df的类型都是函数,使用前需要事先在当前目录下采用函数M文件定义% 另外在使用此函数求解非线性方程组时,需要在函数名前加符号“@”,如下所示 % %应用举例: %x0=[0,0];eps=0.5e-6; %x=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)

相关文档
相关文档 最新文档