数值计算方法课程(运用Matlab)课件_第1页
数值计算方法课程(运用Matlab)课件_第2页
数值计算方法课程(运用Matlab)课件_第3页
数值计算方法课程(运用Matlab)课件_第4页
数值计算方法课程(运用Matlab)课件_第5页
已阅读5页,还剩185页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB快速入门

编程环境1编程入门2绘图3MATLAB快速入门编程环境1编程入门2绘图31Matlab简介Matlab提供了强大的科学计算、灵活的程序设计流程、高质量的图形可视化与界面设计等功能,被广泛应用于科学计算、控制系统、信息处理等领域的分析、仿真和毕业设计。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。

Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,现已成为国际公认的最优秀的工程应用开发环境。Matlab简介Matlab提供了强大的科学计算、灵活的2感受MatlabA=magic(3),det(A),inv(A),eig(A)

求的根f(x)=x*exp(x^2)

的10次导数,在区间【0,1】上的积分等运算x=symsxf=x*exp(x^2)

diff(f,x,10)int(f,x,0,1)

绘图感受MatlabA=magic(3),det(A),inv3Matlab具有很强的数值计算功能

Matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)提供十分丰富的数值计算函数,方便计算,提高效率

简便易学:Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握Matlab是一个交互式软件系统输入一条命令,立即就可以得出该命令的结果Matlab:MatrixLaboratryMatlab具有很强的数值计算功能Matlab以矩阵4Matlab的特点与功能Matlab符号计算功能强大Matlab的编程功能Matlab简单易学、编程效率高。Matlab的绘图功能强大Matlab提供丰富的绘图命令,

很方便实现数据的可视化Matlab丰富的工具箱(toolbox)根据专门领域中的特殊需要而设计的各种可选工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…

…Matlab的特点与功能Matlab符号计算功能强大5Matlab的基本用法Matlab系统的启动双击桌面上的Matlab快捷图标使用Windows“开始”菜单→程序→MATLAB7.0→MATLAB7.0

Matlab系统的退出在Matlab主窗口File

菜单中选择ExitMatlab

命令在Matlab命令窗口输入exit或quit

命令单击Matlab主窗口的“关闭”按钮注:在任何时候,只要按ctrl+c,MATLAB将停止运行的所有工作Matlab的基本用法Matlab系统的启动双击桌面6Matlab的工作界面命令窗口当前工作目录当前工作空间输入命令的历史记录命令提示符Matlab的工作界面命令窗口当前工作目录当前工作空间输入7Matlab的命令窗口

交互式的命令执行方式在CommandWindow内的提示符(>>)之后输入运算式,并按Enter键即可缺省变量名「ans」若不想在屏幕上输出结果,可以在语句最后加分号cos(0),2^10,2+4iA=[123;246;369]det(A)t=0:pi/100:2*pi;y=sin(t);plot(t,y,'r*')Matlab的命令窗口交互式的命令执行方式在Comman8变量命名原则Matlab变量以字母开头:x1,y,千万不要以数字开头

后面可以跟字母、数字

和下划线变量名称区分字母的

大小

写,比如Abc和abc不同字母间不可留空格,可以用下划线math_score

Matlab语句的通常形式变量=表达式续行符…的作用变量命名原则Matlab变量以字母开头:x1,y,千万9系统预定义变量Matlab变量

pi

圆周率

inf/Inf无穷大

nan/NaN

Not-a-Number,一个不定值,如0/0

eps浮点运算相对精度特殊变量

ans

i/j

虚部单位,即应尽量避免给系统预定义变量重新赋值!系统预定义变量Matlab变量pi圆周率i10

数与算术表达式Matlab数值运算Matlab中的数默认是双精度实数,表示方法同

C语言3,-9,0.4,1.603e-12,3.23e+20

浮点运算的相对误差为

eps

浮点数表示范围为:10-308

~10308

复数的输入

z=3+4i

(4与i之间不能有空格)

z=3+4*i数与算术表达式Matlab数值运算Matlab中的数11数学运算符

+

加法Matlab数值运算

-

减法

*

乘法

/和

\

除法(右除和左除)

^

幂运算.*./.\.^

点运算数学运算符+加法Matlab数值运算-减法12常用数学函数函数名含义函数名含义sin正弦函数exp自然指数函数cos余弦函数pow22的幂tan正切函数abs绝对值函数asin反正弦函数angle复数的幅角acos反余弦函数real复数的实部atan反正切函数imag复数的虚部sinh双曲正弦函数conj复数共轭运算cosh双曲余弦函数rem求余数或模运算常用数学函数函数名含义函数名含义sin正弦函数e13函数名含义函数名含义tanh双曲正切函数mod模除求余asinh反双曲正弦函数fix向零方向取整acosh反双曲余弦函数floor不大于自变量的最大整数atanh反双曲正切函数ceil不小于自变量的最小整数sqrt平方根函数round四舍五入到最邻近的整数log自然对数函数sign符号函数log10常用对数函数gcd最大公因子log2以2为底的对数函数lcm最小公倍数常用数学函数函数名含义函数名含义tanh双曲正切函数mod模14简单实例练习:①求29的自然对数和无理数e的值②简单实例练习:15矩阵的基础操作矩阵的基础操作16

矩阵的直接输入矩阵用方括号“[]”括起例:>>

A=[123;456;789]矩阵同一行中的元素之间用空格或逗号分隔矩阵行与行之间用分号分开直接输入法中,分号可以用回车代替矩阵Matlab的操作对象是矩阵矩阵的直接输入矩阵用方括号“[]”括起例:>>A=17矩阵下标矩阵下标18单个元素的引用例:>>

A(2,3)矩阵元素的引用利用小括弧和元素所在的位置(下标)x(i):向量x中的第i个元素A(i,j):矩阵A中的第i行,第j列元素单个元素的引用例:>>A(2,3)矩阵元素的引用利用小括19矩阵操作提取矩阵的部分元素:冒号运算符A(i,j)A的第i行第j列元素

A(:,k)A的第k列

A(k,:)A的第k行

A(:,k:m)A的第k到第m列组成的子矩阵A(end,end)A的最后一行最后一列如何获得由A的第一、三行和第一、二列组成的子矩阵?自己动手矩阵操作提取矩阵的部分元素:冒号运算符A(i,j)20矩阵的各种处理A(2,3)%查询第2行第3列所对应的元素A(12)%查询第12个元素A([914],[1015])%思考之A(:,4)%查询第4列元素A(4,:)%查询第4行元素A(end,:)%最后一行元素A(find(A>5))%查询大于5的元素A(2,3)=5%重新赋值第2行3列元素为5矩阵的各种处理A(2,3)%查询第2行第3列所对应的元素21

向量与矩阵的生成向量与矩阵的生成

向量的生成

直接输入:a=[1,2,3,4]冒号创建:x=a:step:b

从矩阵中抽取行或列生成线性等分向量:x=linspace(a,b,n)

x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的点x4=a+h/2:h:b-h/2;%4倍的点向量与矩阵的生成向量与矩阵的生成向量的生成直接输入:22大矩阵可以把小矩阵作为其元素矩阵元素赋值例:>>

A=[A;111213]在原矩阵的下方加一行如何在原矩阵的右边添加一列?

已知矩阵A和行向量b,如何得到矩阵大矩阵可以把小矩阵作为其元素矩阵元素赋值例:>>A=23常见矩阵生成函数zeros(m,n)生成一个m

行n

列的零矩阵,m=n

时可简写为zeros(n)ones(m,n)生成一个m行n列的元素全为1的矩阵,

m=n

时可写为ones(n)eye(m,n)生成一个主对角线全为1的m

行n

列矩阵,

m=n

时可简写为eye(n),即为n

维单位矩阵diag(A)diag(x)A是矩阵,则diag(A)为A的主对角线向量x是向量,diag(x)产生以x为主对角线的对角矩阵rand(m,n)产生0~1间均匀分布的随机矩阵m=n

时简写为rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵

m=n

时简写为randn(n)常见矩阵生成函数zeros(m,n)生成一个m行n列24矩阵操作查看矩阵的大小:size

size(A)

列出矩阵A的行数和列数

size(A,1)返回矩阵A的行数

size(A,2)返回矩阵A的列数例:>>

A=[123;456]>>

size(A)>>

size(A,1)>>

size(A,2)

length(x)返回向量X的长度

length(A)等价于max(size(A))矩阵操作查看矩阵的大小:sizesize(A)列出25逆矩阵与行列式计算矩阵的逆矩阵:inv(A)矩阵的行列式:det(A)

要求A为方阵矩阵的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)逆矩阵与行列式计算矩阵的逆矩阵:inv(A)矩阵的行列式:d26矩阵的数组运算数组运算:对应元素进行运算点与算术运算符之间不能有空格!

数组运算包括:点乘、点除、点幂

相应的数组运算符为:“.*”,“./”,“.\”和“

.^”例:>>

A=[123;456];B=[321;654];>>

C=A.*B;D=A./B;E=A.\B;F=A.^B;矩阵的数组运算数组运算:对应元素进行运算点与算术运算符之间27数与数组的点幂x.^y

=[1^4,2^5,3^6]=[1,32,729]

x.^2

=[1^2,2^2,3^2]=[1,4,9]

2.^x

=

?例:x=[123];y=[456];数与数组的点幂x.^y=[1^4,2^5,3^6]=[1,28矩阵的“除法”

矩阵的除法:/、\右除和左除

若A可逆方阵,则A\B

<==>A的逆左乘B<==>inv(A)*BB/A

<==>A的逆右乘B<==>B*inv(A)X=A\B<==>A*X=BX=B/A<==>X*A=B通常,矩阵除法可以理解为当A和B行数相等时即可进行左除当A和B列数相等时即可进行右除例:设A、B满足关系式:AB=2B+A,求B。其中A=[301;110;014]。矩阵的“除法”矩阵的除法:/、\右除和左除若A可29向量特殊运算介绍min最小值sum总和max最大值prod总乘积mean平均值std标准差median中位数sort排序dot数量积cross向量积例:A=magic(3)或A=1:5%运算对向量或矩阵都适用B=mean(A)C=sum(A)向量特殊运算介绍min最小值sum总和max最大值prod总30矩阵操作矩阵的上、下三角阵,对角阵

triu(A,k)uppertriangularpart上三角

tril(A,k)lowertriangularpart下三角矩阵的旋转

fliplr(A)

左右旋转

flipud(A)

上下旋转

rot90(A)

逆时针旋转90度;

rot90(A,k)逆时针旋转k×90

度矩阵操作矩阵的上、下三角阵,对角阵triu(A,k)31变量的存储存储当前工作空间中的变量

save

将所有变量存入文件matlab.mat

savemydata

将所有变量存入指定文件mydata.mat存储指定的变量

savemydata.mat

将所有变量存入文件mydata.matsave

文件名

变量名列表例:>>

savemydataAxz

变量名列表中各变量之间用空格分隔。变量的存储存储当前工作空间中的变量save将所有变量32变量的读取将数据文件中的变量载入当前工作空间

loadmydata

载入数据文件中的所有变量

loadmydataAx

从数据文件中提取指定变量掌握如何从txt文件和excel文件载入数据清除当前工作空间中的变量

clear清除当前工作空间中的所有变量

clearAx

清除指定的变量变量的读取将数据文件中的变量载入当前工作空间loadm33输出格式Matlab的输出

Matlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”

File菜单,选择Preferences菜单项,可以设置显示格式Matlab中数的输出格式可以通过format

命令指定format只改变变量的输出格式,但不会影响变量的值!输出格式Matlab的输出Matlab以双精度执行所34几个小技巧

Matlab的命令记忆功能:上下箭头键命令补全功能:Tab键

可以先输入命令的前几个字符,再按上下键缩小搜索范围用Esc键删除命令行几个小技巧Matlab的命令记忆功能:上下箭头键命令补35Matlab帮助系统联机帮助help

显示指定命令的简短使用说明例:>>

helpeig

helpsqrt

>>

helphelp

helpelfun

详细使用帮助doc

以网页形式显示指定命令的帮助页例:>>

doceig

其它相关命令helpdesk、helpwin、moreMatlab帮助系统联机帮助help显示指定命令36基础编程基础编程37编程基础关系与逻辑运算1数据输入与输出2函数文件3选择与循环语句4程序设计技巧简介5编程基础关系与逻辑运算1数据输入与输出2函数文件3选择与循环38用Matlab语言编写的程序称为M文件。

M文件是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。事实上,Matlab

提供的内部函数以及各种工具箱,都是利用Matlab

语言开发的M文件。用户也可以结合自己的工作需要,开发自己的程序或工具箱。

M文件根据调用方式的不同可以分为两类:

Script:脚本文件/命令文件

Function:函数文件M文件

M

文件以.m

为扩展名。用Matlab语言编写的程序称为M文件。M文39

M

文件是一个文本文件,可以用任何文本编辑器来建立和编辑,通常使用Matlab

自带的M

文件编辑器。M文件的建立与打开新建一个M文件菜单操作(FileNewM-File

)命令操作

(edit

M文件名)命令按钮

(

快捷键

)打开已有的M文件菜单操作

(FileOpen

)命令操作(edit

M文件名)命令按钮

(

快捷键

)双击M

文件M文件是一个文本文件,可以用任何文本编辑器来建立和编辑,40程序控制结构有三种:顺序结构、选择结构和循环结构。M文件控制流选择结构是根据给定的条件成立或不成立,分别执行不同的语句。Matlab

用于实现选择结构的语句有if

语句和switch

语句。程序控制结构有三种:顺序结构、选择结构和循环结构。M文件控41关系运算<小于<=小于等于>大于>=大于等于==等于~=不等于比较大小,如果结论是真则返回1,否则返回0注意==与=

的区别关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。关系运算符关系运算<小于<=小于等于>大于>=大于等于==等于~=不等42&与(ElementwiseAND)|或(ElementwiseOR)~

非xor(x,y)

异或逻辑运算逻辑运算符A

&

B

等价于and(A,B)A

|

B

等价于or(A,B)

~

A

等价于not(A)&与(ElementwiseAND)|或(El43例:A=input('PleaseinputA:')数据的输入:inputA=input(提示信息)其中提示信息为字符串,该命令要求用户输入A

的值(可以是数或字符串)数据输入inputA=input(提示信息,'s')注:此时输入的字符串不要加单引号!如果是输入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:例:A=input('PleaseinputA:')44disp(X)输出变量X的值,可以是数值矩阵或字符串>>

B=[123;456;789];>>

disp(B)数据输出disp数据的输出:disp>>

A='Hello,Tom!';>>

disp(A)例:disp(X)输出变量X的值,可以是数值矩阵或字符串>>45单分支结构ifexpression

(条件)

statements(语句组)endif条件语句ifexpression(条件)

statements1(语句组1)else

statements2(语句组2)end双分支结构单分支结构ifexpression(条件)if条件语46数据输出fprintffprintf(fid,format,variables)按指定的格式将变量的值输出到指定的文件数据的输出:fprintf

fid

为文件句柄,若缺省,则将变量的值输出到屏幕上

format

用来指定数据输出时采用的格式,常见的有%e(采用科学计算形式)

%f(采用浮点数形式)%g(由系统自动选取上述两种格式之一)

%s(输出字符串)

format

中还可以使用一些特殊格式,如:\n

(换行)\t

(制表符)\b

(退格)

\\

(反斜杆)

%%

(百分号)

数据输出fprintffprintf(fid,format47数据输出fprintffprintf('第%2d次迭代值为:%10.8f\n',n,x1)例:

format

中的输出格式要与输出变量一一对应数据输出fprintffprintf('第%2d次迭代值为48function

[out1,out2,…]=函数名(in1,in2,…)%注释说明部分(可选)函数体语句(必须)

第一行为引导行,表示该M文件是函数文件函数名的命名规则与变量名相同(必须以字母开头

)当输出行参多于一个时,用方括号括起来函数必须是一个单独的M文件函数文件名必须与函数名一致以百分号开始的语句为注释语句函数文件函数文件由function

语句引导function[out1,out2,…]=函数名(in149函数文件举例myfun.mfunction

[x1,x2]=myfun(a,b,c)temp=sqrt(b^2-4*a*c);x1=(-b+temp)/2/a;x2=(-b-temp)/2/a;函数文件举例myfun.mfunction[x1,x2]50函数调用的一般格式输出实参列表=函数名(输入实参列表)函数调用函数调用的一般格式输出实参列表=函数名(输入实参列表)函数51子函数functionavg=fun(x)%主函数

n=length(x);avg=mean(x,n);functiona=mean(x,n)%子函数a=sum(x)/n;子函数functionavg=fun(x)%主函数52M文件的编辑与路径设置进入MATLAB的Editor/Debugger窗口来编辑程序在编辑环境中,文字的不同颜色显示表明文字的不同属性。

绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。在运行程序之前,必须设置好MATLAB的工作路径M文件的编辑与路径设置进入MATLAB的Editor/Deb53程序设计技术程序出错主要为两类:1)格式错误,如缺‘(’或‘)’等,在运行时可检测出大多数该类错误,并指出错在哪一行。2)算法错误,逻辑上的错误,不易查找,遇到此类错误时需耐心。程序设计技术程序出错主要为两类:54程序控制结构有三种:顺序结构、选择结构和循环结构。任何复杂的程序都由这三种基本结构组成。

顺序结构M文件控制流按排列顺序依次执行各条语句,直到程序的最后。这是最简单的一种程序结构,一般涉及数据的输入输出、数据的计算或处理等。程序控制结构有三种:顺序结构、选择结构和循环结构。任何复杂55选择结构是根据给定的条件成立或不成立,分别执行不同的语句。Matlab

用于实现选择结构的语句有if

语句和switch

语句。选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句。56ifexpression1(条件1)

statements1(语句组1)elseifexpression2(条件2)

statements2(语句组2)

......

elseifexpressionm(条件m)

statementsm(语句组m)else

statements(语句组)end多分支结构if条件语句ifexpression1(条件1)多分支结构if条57forvariable=expression

statement(循环体)end循环变量循环结构whileexpression(条件)

statement(循环体)endforvariable=expression循环变量循环结58for循环【练习】一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。for循环【练习】一个三位整数各位数字的立方和等于该数本身则59举例fork=1:1:nx0=x1;x1=x0-f(x0)/df(x0);end

数值稳定性实验:fori=1:1:8fori=8:-1:1

…………

end

end

迭代法求根,线性方程组迭代法求解,常微分方程数值解等举例fork=1:1:n数值稳定性实验:迭代法求根,线60循环语句可以嵌套使用while循环whileexpression(条件)

statement(循环体)end不能在for循环体内改变循环变量的值为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免

for循环的使用如果预先就知道循环的次数,则可以采用for循环;否则,如果预先无法确定循环的次数,则可以使用while循环。循环语句可以嵌套使用while循环whileexpre61while循环举例【例】Fibonacci数组的元素满足Fibonacci规则:且。现要求该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=3;a(i)=a(i-1)+a(i-2);whilea(i)<=10000i=i+1; a(i)=a(i-1)+a(i-2);endi,a(i),while循环举例【例】Fibonacci数组的元素满足Fi62

break

continue

break

语句用于终止循环的执行,即跳出最内层循环

continue

语句用于结束本次循环,进行下一次循环

break

和continue

一般与if

语句配合使用其它流控制语句

return

return

语句用于退出正在运行的脚本或函数,通常用在函数文件中。break和continuebreak语句用于终止63continue语句【例】把100到120之间的能被7整除的整数输出。fori=100:120

ifrem(i,7)~=0

continue

endiendcontinue语句【例】把100到120之间的能被7整除的64break语句【例】输出100到120之间第一个能被7整除的整数fori=100:120

ifrem(i,7)~=0

continue

endibreakendbreak语句【例】输出100到120之间第一个能被7整除的65return语句functionoutput=fact(n)ifn==1output=1;return;endoutput=n*fact(n-1);return语句functionoutput=fact66程序示例【例】分段函数的最基本实现。程序示例【例】分段函数的最基本实现。67数值计算方法课程(运用Matlab)课件68根据表达式的不同取值,分别执行不同的语句。switchexpression(表达式)

casevalue1(表达式1)

statement1(语句组1)

casevalue2(表达式2)

statement2(语句组2)

......casevaluem

(表达式m)

statementm(语句组m)

otherwise

statement(语句组)endswitch语句根据表达式的不同取值,分别执行不同的语句。switche69首先由计算机随机产生一个[1,100]之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示“High”,小于则显示“

Low”

,等于则显示“Youwon!”,同时退出游戏。用户最多有7次机会。上机作业猜数游戏首先由计算机随机产生一个[1,100]之间的一个整数,然70Matlab绘图Matlab绘图71Matlab二维作图

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的行数或列数。Matlab二维作图plot(x,y)基本形式x,72

点和线的基本属性图形的属性

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*-’);点和线的基本属性图形的属性plot(x,y,string73同时绘制多个函数图像

plot(x1,y1,s1,x2,y2,s2,...,xn,yn,sn)属性选项可以省略等价于:holdonplot(x1,y1,s1)plot(x2,y2,s2)...plot(xn,yn,sn)同时绘制多个函数图像plot(x1,y1,s1,x2,y74图形的基本属性线型点标记颜色-

实线:

虚线-.

点划线--

间断线.

点o

小圆圈x

叉子符+

加号*

星号s

方格d

菱形^

朝上三角v

朝下三角>

朝右三角<

朝左三角p

五角星h

六角星y

黄色

m

品红色

c青色r红色g绿色b蓝色w白色k黑色help

plot

查看图形的基本属性线型点标记颜色-实线.点y黄75图形的其他属性标题title(’text’)坐标轴标注xlabel(’text’)

ylabel(’text’)添加图例legend(string1,string2,...)图形的其他属性标题title(’text’)坐标轴标注x76其他相关命令保持当前窗口的图像holdon或

holdoff新建绘图窗口figure(n)显示网格gridon或

gridoff其他相关命令保持当前窗口的图像holdon或hold77其它调用方式:axisauto自动模式,使得图形的坐标满足图中的一切元素axisequal各坐标轴采用等长刻度axissquare使绘图区域为正方形axison/off恢复/取消对坐标轴的一切设置axismanual以当前的坐标限制图形的绘制(多图时)……更多参见axis的联机帮助坐标轴控制axis([xmin,xmax,ymin,ymax,zmin,zmax])作用:控制坐标轴的显示范围

坐标轴控制命令:axis其它调用方式:axisauto自动模式,使78图形的其他属性>>

x=-pi:pi/10:pi;>>

y=sin(x);>>

plot(x,y,'rh:','linewidth',2,...'markeredgecolor','b',...'markerfacecolor','g')例:

线条的粗细,字体大小,坐标轴属性等。linewidth:指定线条的粗细markeredgecolor:指定标记的边缘色markerfacecolor:指定标记表面的颜色注:1)属性与属性的值是成对出现的2)更多属性参见plot的联机帮助图形的其他属性>>x=-pi:pi/10:pi;例:线条79数值分析实验选讲牛顿迭代法实验2微分方程数值解实验3数值积分实验4数值稳定性实验1数值分析实验选讲牛顿迭代法实验2微分方程数值解实验3数值积分80数值稳定性实验数值稳定性实验81教材第6页例1.1例:计算公式一:记为则初始误差教材第6页例1.1例:计算公式一:记为则初始误差82Ans=0.1820000000000.0900000000000.0500000000000.083333333333-0.1666666666671.033333333333-5.00000000000025.142857142858-125.589285714292Ans=83例:计算公式二:例:计算公式二:84S1=0.182321559771430.088392201142860.058038994285710.043138361904760.034308190476190.028459047619050.024371428571430.021000000000000.02000000000000S1=85n00.1823210.1820.182310.0883920.0900.0883920.0580390.0500.05803830.0431380.0830.04313840.034306-0.16660.03430850.0284681.03330.02845960.024324-5.00000.0243770.02123625.14280.02180.018836-125.58920.020n00.1823210.1820.182310.08839286

选用数值稳定性的算法计算思考与练习提示:选用数值稳定性的算法计算思考与练习提示:87牛顿迭代法实验牛顿迭代法实验88教材第200页例1.1

203页例7.8教材第200页例1.1203页例7.889教材第200页例1.1例:求下面方程的一个根,其中控制精确度tol=10^(-8).教材第200页例1.1例:求下面方程的一个根,其中控制90调用结果若取初始值为1:>>[x1,n]=mynewton(1,1e-8)x1=0.60259620356652n=

7若取初始值为0:>>[x1,n]=mynewton(0,1e-8)x1=0.60259620356652n=27

调用结果91调用结果2>>[x1,n]=mynewton(1,1e-6);第1次迭代值为:0.82731056第2次迭代值为:0.69235833第3次迭代值为:0.62007843第4次迭代值为:0.60334207第5次迭代值为:0.60259760第6次迭代值为:0.60259620第7次迭代值为:0.60259620共迭代7次求得的近似根x*=:0.60259620调用结果2>>[x1,n]=mynewton(1,1e-692微分方程数值解实验微分方程数值解实验93教材第248页例9.2教材第248页例9.294调用结果调用结果95数值积分实验数值积分实验96MATLAB快速入门

编程环境1编程入门2绘图3MATLAB快速入门编程环境1编程入门2绘图397Matlab简介Matlab提供了强大的科学计算、灵活的程序设计流程、高质量的图形可视化与界面设计等功能,被广泛应用于科学计算、控制系统、信息处理等领域的分析、仿真和毕业设计。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。

Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,现已成为国际公认的最优秀的工程应用开发环境。Matlab简介Matlab提供了强大的科学计算、灵活的98感受MatlabA=magic(3),det(A),inv(A),eig(A)

求的根f(x)=x*exp(x^2)

的10次导数,在区间【0,1】上的积分等运算x=symsxf=x*exp(x^2)

diff(f,x,10)int(f,x,0,1)

绘图感受MatlabA=magic(3),det(A),inv99Matlab具有很强的数值计算功能

Matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)提供十分丰富的数值计算函数,方便计算,提高效率

简便易学:Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握Matlab是一个交互式软件系统输入一条命令,立即就可以得出该命令的结果Matlab:MatrixLaboratryMatlab具有很强的数值计算功能Matlab以矩阵100Matlab的特点与功能Matlab符号计算功能强大Matlab的编程功能Matlab简单易学、编程效率高。Matlab的绘图功能强大Matlab提供丰富的绘图命令,

很方便实现数据的可视化Matlab丰富的工具箱(toolbox)根据专门领域中的特殊需要而设计的各种可选工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…

…Matlab的特点与功能Matlab符号计算功能强大101Matlab的基本用法Matlab系统的启动双击桌面上的Matlab快捷图标使用Windows“开始”菜单→程序→MATLAB7.0→MATLAB7.0

Matlab系统的退出在Matlab主窗口File

菜单中选择ExitMatlab

命令在Matlab命令窗口输入exit或quit

命令单击Matlab主窗口的“关闭”按钮注:在任何时候,只要按ctrl+c,MATLAB将停止运行的所有工作Matlab的基本用法Matlab系统的启动双击桌面102Matlab的工作界面命令窗口当前工作目录当前工作空间输入命令的历史记录命令提示符Matlab的工作界面命令窗口当前工作目录当前工作空间输入103Matlab的命令窗口

交互式的命令执行方式在CommandWindow内的提示符(>>)之后输入运算式,并按Enter键即可缺省变量名「ans」若不想在屏幕上输出结果,可以在语句最后加分号cos(0),2^10,2+4iA=[123;246;369]det(A)t=0:pi/100:2*pi;y=sin(t);plot(t,y,'r*')Matlab的命令窗口交互式的命令执行方式在Comman104变量命名原则Matlab变量以字母开头:x1,y,千万不要以数字开头

后面可以跟字母、数字

和下划线变量名称区分字母的

大小

写,比如Abc和abc不同字母间不可留空格,可以用下划线math_score

Matlab语句的通常形式变量=表达式续行符…的作用变量命名原则Matlab变量以字母开头:x1,y,千万105系统预定义变量Matlab变量

pi

圆周率

inf/Inf无穷大

nan/NaN

Not-a-Number,一个不定值,如0/0

eps浮点运算相对精度特殊变量

ans

i/j

虚部单位,即应尽量避免给系统预定义变量重新赋值!系统预定义变量Matlab变量pi圆周率i106

数与算术表达式Matlab数值运算Matlab中的数默认是双精度实数,表示方法同

C语言3,-9,0.4,1.603e-12,3.23e+20

浮点运算的相对误差为

eps

浮点数表示范围为:10-308

~10308

复数的输入

z=3+4i

(4与i之间不能有空格)

z=3+4*i数与算术表达式Matlab数值运算Matlab中的数107数学运算符

+

加法Matlab数值运算

-

减法

*

乘法

/和

\

除法(右除和左除)

^

幂运算.*./.\.^

点运算数学运算符+加法Matlab数值运算-减法108常用数学函数函数名含义函数名含义sin正弦函数exp自然指数函数cos余弦函数pow22的幂tan正切函数abs绝对值函数asin反正弦函数angle复数的幅角acos反余弦函数real复数的实部atan反正切函数imag复数的虚部sinh双曲正弦函数conj复数共轭运算cosh双曲余弦函数rem求余数或模运算常用数学函数函数名含义函数名含义sin正弦函数e109函数名含义函数名含义tanh双曲正切函数mod模除求余asinh反双曲正弦函数fix向零方向取整acosh反双曲余弦函数floor不大于自变量的最大整数atanh反双曲正切函数ceil不小于自变量的最小整数sqrt平方根函数round四舍五入到最邻近的整数log自然对数函数sign符号函数log10常用对数函数gcd最大公因子log2以2为底的对数函数lcm最小公倍数常用数学函数函数名含义函数名含义tanh双曲正切函数mod模110简单实例练习:①求29的自然对数和无理数e的值②简单实例练习:111矩阵的基础操作矩阵的基础操作112

矩阵的直接输入矩阵用方括号“[]”括起例:>>

A=[123;456;789]矩阵同一行中的元素之间用空格或逗号分隔矩阵行与行之间用分号分开直接输入法中,分号可以用回车代替矩阵Matlab的操作对象是矩阵矩阵的直接输入矩阵用方括号“[]”括起例:>>A=113矩阵下标矩阵下标114单个元素的引用例:>>

A(2,3)矩阵元素的引用利用小括弧和元素所在的位置(下标)x(i):向量x中的第i个元素A(i,j):矩阵A中的第i行,第j列元素单个元素的引用例:>>A(2,3)矩阵元素的引用利用小括115矩阵操作提取矩阵的部分元素:冒号运算符A(i,j)A的第i行第j列元素

A(:,k)A的第k列

A(k,:)A的第k行

A(:,k:m)A的第k到第m列组成的子矩阵A(end,end)A的最后一行最后一列如何获得由A的第一、三行和第一、二列组成的子矩阵?自己动手矩阵操作提取矩阵的部分元素:冒号运算符A(i,j)116矩阵的各种处理A(2,3)%查询第2行第3列所对应的元素A(12)%查询第12个元素A([914],[1015])%思考之A(:,4)%查询第4列元素A(4,:)%查询第4行元素A(end,:)%最后一行元素A(find(A>5))%查询大于5的元素A(2,3)=5%重新赋值第2行3列元素为5矩阵的各种处理A(2,3)%查询第2行第3列所对应的元素117

向量与矩阵的生成向量与矩阵的生成

向量的生成

直接输入:a=[1,2,3,4]冒号创建:x=a:step:b

从矩阵中抽取行或列生成线性等分向量:x=linspace(a,b,n)

x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的点x4=a+h/2:h:b-h/2;%4倍的点向量与矩阵的生成向量与矩阵的生成向量的生成直接输入:118大矩阵可以把小矩阵作为其元素矩阵元素赋值例:>>

A=[A;111213]在原矩阵的下方加一行如何在原矩阵的右边添加一列?

已知矩阵A和行向量b,如何得到矩阵大矩阵可以把小矩阵作为其元素矩阵元素赋值例:>>A=119常见矩阵生成函数zeros(m,n)生成一个m

行n

列的零矩阵,m=n

时可简写为zeros(n)ones(m,n)生成一个m行n列的元素全为1的矩阵,

m=n

时可写为ones(n)eye(m,n)生成一个主对角线全为1的m

行n

列矩阵,

m=n

时可简写为eye(n),即为n

维单位矩阵diag(A)diag(x)A是矩阵,则diag(A)为A的主对角线向量x是向量,diag(x)产生以x为主对角线的对角矩阵rand(m,n)产生0~1间均匀分布的随机矩阵m=n

时简写为rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵

m=n

时简写为randn(n)常见矩阵生成函数zeros(m,n)生成一个m行n列120矩阵操作查看矩阵的大小:size

size(A)

列出矩阵A的行数和列数

size(A,1)返回矩阵A的行数

size(A,2)返回矩阵A的列数例:>>

A=[123;456]>>

size(A)>>

size(A,1)>>

size(A,2)

length(x)返回向量X的长度

length(A)等价于max(size(A))矩阵操作查看矩阵的大小:sizesize(A)列出121逆矩阵与行列式计算矩阵的逆矩阵:inv(A)矩阵的行列式:det(A)

要求A为方阵矩阵的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)逆矩阵与行列式计算矩阵的逆矩阵:inv(A)矩阵的行列式:d122矩阵的数组运算数组运算:对应元素进行运算点与算术运算符之间不能有空格!

数组运算包括:点乘、点除、点幂

相应的数组运算符为:“.*”,“./”,“.\”和“

.^”例:>>

A=[123;456];B=[321;654];>>

C=A.*B;D=A./B;E=A.\B;F=A.^B;矩阵的数组运算数组运算:对应元素进行运算点与算术运算符之间123数与数组的点幂x.^y

=[1^4,2^5,3^6]=[1,32,729]

x.^2

=[1^2,2^2,3^2]=[1,4,9]

2.^x

=

?例:x=[123];y=[456];数与数组的点幂x.^y=[1^4,2^5,3^6]=[1,124矩阵的“除法”

矩阵的除法:/、\右除和左除

若A可逆方阵,则A\B

<==>A的逆左乘B<==>inv(A)*BB/A

<==>A的逆右乘B<==>B*inv(A)X=A\B<==>A*X=BX=B/A<==>X*A=B通常,矩阵除法可以理解为当A和B行数相等时即可进行左除当A和B列数相等时即可进行右除例:设A、B满足关系式:AB=2B+A,求B。其中A=[301;110;014]。矩阵的“除法”矩阵的除法:/、\右除和左除若A可125向量特殊运算介绍min最小值sum总和max最大值prod总乘积mean平均值std标准差median中位数sort排序dot数量积cross向量积例:A=magic(3)或A=1:5%运算对向量或矩阵都适用B=mean(A)C=sum(A)向量特殊运算介绍min最小值sum总和max最大值prod总126矩阵操作矩阵的上、下三角阵,对角阵

triu(A,k)uppertriangularpart上三角

tril(A,k)lowertriangularpart下三角矩阵的旋转

fliplr(A)

左右旋转

flipud(A)

上下旋转

rot90(A)

逆时针旋转90度;

rot90(A,k)逆时针旋转k×90

度矩阵操作矩阵的上、下三角阵,对角阵triu(A,k)127变量的存储存储当前工作空间中的变量

save

将所有变量存入文件matlab.mat

savemydata

将所有变量存入指定文件mydata.mat存储指定的变量

savemydata.mat

将所有变量存入文件mydata.matsave

文件名

变量名列表例:>>

savemydataAxz

变量名列表中各变量之间用空格分隔。变量的存储存储当前工作空间中的变量save将所有变量128变量的读取将数据文件中的变量载入当前工作空间

loadmydata

载入数据文件中的所有变量

loadmydataAx

从数据文件中提取指定变量掌握如何从txt文件和excel文件载入数据清除当前工作空间中的变量

clear清除当前工作空间中的所有变量

clearAx

清除指定的变量变量的读取将数据文件中的变量载入当前工作空间loadm129输出格式Matlab的输出

Matlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”

File菜单,选择Preferences菜单项,可以设置显示格式Matlab中数的输出格式可以通过format

命令指定format只改变变量的输出格式,但不会影响变量的值!输出格式Matlab的输出Matlab以双精度执行所130几个小技巧

Matlab的命令记忆功能:上下箭头键命令补全功能:Tab键

可以先输入命令的前几个字符,再按上下键缩小搜索范围用Esc键删除命令行几个小技巧Matlab的命令记忆功能:上下箭头键命令补131Matlab帮助系统联机帮助help

显示指定命令的简短使用说明例:>>

helpeig

helpsqrt

>>

helphelp

helpelfun

详细使用帮助doc

以网页形式显示指定命令的帮助页例:>>

doceig

其它相关命令helpdesk、helpwin、moreMatlab帮助系统联机帮助help显示指定命令132基础编程基础编程133编程基础关系与逻辑运算1数据输入与输出2函数文件3选择与循环语句4程序设计技巧简介5编程基础关系与逻辑运算1数据输入与输出2函数文件3选择与循环134用Matlab语言编写的程序称为M文件。

M文件是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。事实上,Matlab

提供的内部函数以及各种工具箱,都是利用Matlab

语言开发的M文件。用户也可以结合自己的工作需要,开发自己的程序或工具箱。

M文件根据调用方式的不同可以分为两类:

Script:脚本文件/命令文件

Function:函数文件M文件

M

文件以.m

为扩展名。用Matlab语言编写的程序称为M文件。M文135

M

文件是一个文本文件,可以用任何文本编辑器来建立和编辑,通常使用Matlab

自带的M

文件编辑器。M文件的建立与打开新建一个M文件菜单操作(FileNewM-File

)命令操作

(edit

M文件名)命令按钮

(

快捷键

)打开已有的M文件菜单操作

(FileOpen

)命令操作(edit

M文件名)命令按钮

(

快捷键

)双击M

文件M文件是一个文本文件,可以用任何文本编辑器来建立和编辑,136程序控制结构有三种:顺序结构、选择结构和循环结构。M文件控制流选择结构是根据给定的条件成立或不成立,分别执行不同的语句。Matlab

用于实现选择结构的语句有if

语句和switch

语句。程序控制结构有三种:顺序结构、选择结构和循环结构。M文件控137关系运算<小于<=小于等于>大于>=大于等于==等于~=不等于比较大小,如果结论是真则返回1,否则返回0注意==与=

的区别关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。关系运算符关系运算<小于<=小于等于>大于>=大于等于==等于~=不等138&与(ElementwiseAND)|或(ElementwiseOR)~

非xor(x,y)

异或逻辑运算逻辑运算符A

&

B

等价于and(A,B)A

|

B

等价于or(A,B)

~

A

等价于not(A)&与(ElementwiseAND)|或(El139例:A=input('PleaseinputA:')数据的输入:inputA=input(提示信息)其中提示信息为字符串,该命令要求用户输入A

的值(可以是数或字符串)数据输入inputA=input(提示信息,'s')注:此时输入的字符串不要加单引号!如果是输入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:例:A=input('PleaseinputA:')140disp(X)输出变量X的值,可以是数值矩阵或字符串>>

B=[123;456;789];>>

disp(B)数据输出disp数据的输出:disp>>

A='Hello,Tom!';>>

disp(A)例:disp(X)输出变量X的值,可以是数值矩阵或字符串>>141单分支结构ifexpression

(条件)

statements(语句组)endif条件语句ifexpression(条件)

statements1(语句组1)else

statements2(语句组2)end双分支结构单分支结构ifexpression(条件)if条件语142数据输出fprintffprintf(fid,format,variables)按指定的格式将变量的值输出到指定的文件数据的输出:fprintf

fid

为文件句柄,若缺省,则将变量的值输出到屏幕上

format

用来指定数据输出时采用的格式,常见的有%e(采用科学计算形式)

%f(采用浮点数形式)%g(由系统自动选取上述两种格式之一)

%s(输出字符串)

format

中还可以使用一些特殊格式,如:\n

(换行)\t

(制表符)\b

(退格)

\\

(反斜杆)

%%

(百分号)

数据输出fprintffprintf(fid,format143数据输出fprintffprintf('第%2d次迭代值为:%10.8f\n',n,x1)例:

format

中的输出格式要与输出变量一一对应数据输出fprintffprintf('第%2d次迭代值为144functio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论