MATLAB入门数学建模

上传人:cl****1 文档编号:571408214 上传时间:2024-08-10 格式:PPT 页数:132 大小:2.15MB
返回 下载 相关 举报
MATLAB入门数学建模_第1页
第1页 / 共132页
MATLAB入门数学建模_第2页
第2页 / 共132页
MATLAB入门数学建模_第3页
第3页 / 共132页
MATLAB入门数学建模_第4页
第4页 / 共132页
MATLAB入门数学建模_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《MATLAB入门数学建模》由会员分享,可在线阅读,更多相关《MATLAB入门数学建模(132页珍藏版)》请在金锄头文库上搜索。

1、 MATLAB入门入门 启动方式启动方式:以鼠标双击桌面上的MATLAB图标在开始的主菜单下,选取程序/ Matlab / MATLAB 6.5 开始按钮开始按钮命令历史窗口命令历史窗口窗口分割栏,可调整窗口大小窗口分割栏,可调整窗口大小当前目录当前目录工作区窗口工作区窗口帮助帮助命令窗口命令窗口显示和修改当前显示和修改当前目录名目录名将窗口移出将窗口移出Matlab窗口窗口MATLABMATLAB的界面的界面 MATLAB MATLAB的界面中的五个窗口的界面中的五个窗口: :1.命令窗口命令窗口:(Commamd Window) 在命令窗口中可以 直接输入命令行,以实现计算或绘图功能.2.

2、起始面板(起始面板(Launch Pad) 该窗口中显示MATLAB总包和已安装的工具箱的帮助,演示,工具和产品主页4个方面的内容工作空间(工作空间(orkspace)该窗口中显示当前MATLAB的内存中使用的变量的信息命令历史命令历史()该窗口中显示所有执行过的命令当前目录当前目录()该窗口中显示当前工作目录下所有文件的文件名,文件类型和最后修改时间 命令窗口的菜单栏命令窗口的菜单栏 菜单栏共包含File、Edit、Window和Help四项。File菜单项:菜单项: New命令:命令:用于建立M文件、图形窗口。 Open命令:命令:打开一个已经建立的M文件。 Run Script命令:命令

3、:执行一个命令文件。 Load Workspace命令:命令:将变量装入当前空间。Save Workspace As命令:命令:把当前工作空间的所有 变量用后缀为.mat的文件保存起来。 Show Workspace命令命令:打开变量浏览器。 Set Path命令:命令:打开MATLAB的路径浏览器。 Preferences命令:命令:打开命令窗口的显示格式。 Print Setup命令:命令:设置打印机的参数。 Print命令:命令:打印和设置一些打印参数。 Print Selection命令:命令:打印选中的内容。 Exit MATLAB命令:命令:退出MATLAB系统。Edit菜单项:菜

4、单项: Undo、Cut、Copy和Paste等命令:分别用于 撤销上一次操作、剪切、复制和粘贴。 Clear命令:命令:删除内容。 Select All命令:命令:用于选定所有文本内容。 Clear Session命令:命令:清除命令编辑区的全部 内容,但并不删除工作空间中的变量。Help菜单项菜单项:Help Window命令:命令:打开MATLAB的帮助窗口。Help Tips命令:命令:打开帮助窗口,并首先 显示MATLAB的帮助系统的分类和使用方法。Help Desk(HTML)命令命令:打开系统WWW 浏览器,并显示MATLAB的帮助桌面。Examples and Demos命令:

5、命令:可以通过 演示MATLAB提供的例子来熟悉相关部分的用法。About MATLAB命令:命令:打开关于MATLAB的 版本和版权等信息。Subsribe命令:命令:打开机器上的WWW浏览器,用户 通过填写相关的表格来获得MathWorks公司的产品。 命令窗口的工具栏命令窗口的工具栏 工具栏提供了一些命令按钮,使用命令按钮可使操作更快捷、更方便。 工作空间新建 剪切 粘贴 浏览器 新仿真模型 打开 复制 撤消 路径浏览器 帮助 变量和赋值语句变量和赋值语句MATLAB赋值语句有两种形式: (1) 变量=表达式 (2) 表达式其中“表达式”是用运算符将有关运算量连接起来的式子,其结果是一个

6、矩阵。注第二种语句形式下,将表达式的值赋给MATLAB的永久变量ans。 MATLAB表达式表达式算术表达式。算术表达式。运算符有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。关系表达式关系表达式。运算符有:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)逻辑表达式。逻辑表达式。运算符有:&(与)、|(或)和(非) 运算法则:运算法则: (1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 (2)参与逻辑运算的可以是两个标量、两个同维矩阵或参与逻辑运算的元素一个为标量,另一个为矩阵。

7、()在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。 MATLAB中变量的中变量的命名规则命名规则(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中 不允许使用标点符号. 特殊变量表特殊变量表 数学运算符号及标点符号数学运算符号及标点符号(1)MATLAB的每条命令后, 若为逗号逗号或或无标点无标点符号, 则显示命令的结果; 若命令后为分号分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “.”表示续行.3、数学函数、数学函数 MATLAB的内

8、部函数是有限的,有时为了研究的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为某一个函数的各种性态,需要为MATLAB定义新函定义新函数,为此必须编写函数文件数,为此必须编写函数文件. 函数文件是文件名后函数文件是文件名后缀为缀为M的文件,这类文件的的文件,这类文件的第一行必须是一特殊字第一行必须是一特殊字符符function开始开始,格式为:,格式为: function 因变量名因变量名=函数名(自变量名)函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因函数值的获得必须通过具体的运算实现,并赋给因变量变量. M文件文件 M文件建立方法:文件建立方法: 1. 在在Mat

9、lab中,点中,点:File-New-M-file 2. 在编辑窗口中输入程序内容在编辑窗口中输入程序内容 3. 点:点:File-Save,存盘,存盘,M文件名必须文件名必须 与函数名一致。与函数名一致。Matlab的应用程序也以的应用程序也以M文件保存。文件保存。例:定义函数例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)21.建立建立M文件:文件:fun.m2. 可以直接使用函数可以直接使用函数fun.m例如:计算例如:计算 f(1,2), 只需在只需在Matlab命令窗口键入

10、命令:命令窗口键入命令:x=1 2fun(x)计算y1=2*sin(0.3*pi)/(1+sqrt(5) y1 = 0.5000 的值.【例】 y2=2*cos(0.3*pi)/(1+sqrt(5) y2 = 0.3633 1、创建简单的数组、创建简单的数组二、数二、数 组组 直接输入向量直接输入向量x=a b c d e f x=a b c d e f 创建包含指定元 素的行向量 例 x1=1 2 4, x2=1,2,1, x3=x1 运行结果 x1 = 1 2 4 x2 = 1 2 1 x3 = 1 2 4 冒号创建向量冒号创建向量x=first:last 创建从first开始,加1计数,

11、到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,last结束的行向量 例例 x1=3.4:6.7, x2=3.4:2:6.7 x3=2.6:-0.8:0 运算结果运算结果 x1 = 3.4000 4.4000 5.4000 6.4000 x2 = 3.4000 5.4000 x3 = 2.6000 1.8000 1.0000 0.2000 生成线性等分向量生成线性等分向量指令指令x=linspace(a,b,n) 在在a,b区间产生区间产生 n 个等分点个等分点(包括端点包括端点) x=linspace(0,1,5) 结果结果

12、 x = 0 0.2500 0.5000 0.7500 1.0000 函数计算函数计算产生函数向量产生函数向量Matlab有许多内部函数,可直接作用于向量 产生一个同维的函数向量。x=linspace(0,4*pi,100); %产生100维向量xy=sin(x); %y也自动为100维向量y1=sin(x).2;y2=exp(-x).*sin(x);a=logspace(n1,n2,n) 在对数空间上,行矢量的值从10n1到10n2,数据个数为n,缺省n为50。这个指令为建立对数频域轴坐标提供了方便。a=logspace(1,3,3)a= 10 100 1000例: x=1 2 3 4 5

13、8 7 18 x=1 2 3 4 5 8 7 18 y=1:7 y=1 2 3 4 5 6 7 z=3:2:9 z=3 5 7 9 v=y z v=1 2 3 4 5 6 7 3 5 7 9 u=linspace(2,6,8) u=2 2.5 3 3.5 4 4.5 5 5.5 6 2、 数组元素的访问数组元素的访问(3)直接使用元素编址序号直接使用元素编址序号. x(a b c d) 表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a) x(b) x(c) x(d). (2)访问一块元素访问一块元素: x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但

14、不超过c),b可以为负数,b缺损时为1. (1)访问一个元素访问一个元素: x(i)表示访问数组x的第i个元素. 例 : x=1:9 x=1 2 3 4 5 6 7 8 9 y=x(2:2:8) y=2 4 6 8 z=x(1) x(6) x(8) z=1 6 8 3 3、数组的方向、数组的方向 前面例子中的数组都是一行数列,是行方向分布的前面例子中的数组都是一行数列,是行方向分布的. 称之为称之为行向量行向量. 数组也可以是数组也可以是列向量列向量,它的数组操作和运,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示算与行向量是一样的,唯一的区别是结果以列形式显示. 产生列向量

15、有两种方法:产生列向量有两种方法:直接产生直接产生 ,转置产生转置产生 .例例: : c=1;2;3;4例例: : b=1 2 3 4; c=b c=1;2;3;4 说明:以说明:以空格空格或或逗号逗号分隔的元素指定的是不同列的元素,分隔的元素指定的是不同列的元素, 而以而以分号分号分隔的元素指定了不同行的元素分隔的元素指定了不同行的元素. 4、数组的运算、数组的运算 (1)标量)标量-数组运算数组运算 数组对标量的加、减、乘、除、乘方是数组的每个数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算元素对该标量施加相应的加、减、乘、除、乘方运算. 设:设:

16、a=a1,a2,an, c=标量标量则:则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c= a1/c,a2/c,an/c(右除)右除) a.c= c/a1,c/a2,c/an (左除)左除) a.c= a1c,a2c,anc c.a= ca1,ca2,can (2)数组数组-数组运算数组运算 当两个数组有相同维数时,加、减、乘、除、当两个数组有相同维数时,加、减、乘、除、幂运算可按幂运算可按元素对元素元素对元素方式进行的,不同大小或维方式进行的,不同大小或维数的数组是不能进行运算的数的数组是不能进行运算的. 设:设:a=a1,a2,an, b=b1,b

17、2,bn则:则:a+b= a1+b1,a2+b2,an+bn a.*b= a1*b1,a2*b2,an*bn a./b= a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn例 a=1 2 3 4 c=2 a1=a+c a1=3 4 5 6 a2=a.*c a2=2 4 6 8 a3=a./c a3=0.5 1 1.5 2 a4=a.c a4=2 1 2/3 0.5 a5=a.c a5=1 4 9 16 a6=c.a a6=2 4 8 16三、三、 矩矩 阵阵 逗号逗号或或空格空格用于分隔某一行的元素,用于分隔某一行的元素,分号分

18、号用于区分不用于区分不同的行同的行. 除了分号,在输入矩阵时,按除了分号,在输入矩阵时,按Enter键也表示开始键也表示开始一新行一新行. 输入矩阵时,严格要求所有行有相同的列输入矩阵时,严格要求所有行有相同的列. 例例 m=1 2 3 4 ;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 31、矩阵的建立、矩阵的建立特殊矩阵特殊矩阵的建立:. d=eye(m,n) 产生一个产生一个m行、行、n列的单位矩阵列的单位矩阵c=ones(m,n) 产生一个产生一个m行、行、n列的元素列的元素 全为全为1的矩阵的矩阵b=zeros(m,n) 产生一个产生一个m行、

19、行、n列的零矩阵列的零矩阵a= 产生一个空矩阵,当对一项操作无结产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零果时,返回空矩阵,空矩阵的大小为零. 例 m=1 2 3 4;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 3 a= p+a=p b=zeros(2,3) b=0 0 0;0 0 0 c=ones(2,3) c=1 1 1;1 1 1 d=eye(2,3) d=1 0 0;0 1 0 e=eye(3,3) e=1 0 0;0 1 0;0 0 12、矩阵中元素的操作、矩阵中元素的操作(1)矩阵)矩阵A的第的第r行:行:A(r,

20、:),:)(2)矩阵)矩阵A的第的第r列:列:A(:,(:,r)(4)取矩阵)取矩阵A的第的第i1i2行、第行、第j1j2列构成新矩阵列构成新矩阵:A(i1:i2, j1:j2)(5)以逆序提取矩阵)以逆序提取矩阵A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i2:-1:i1,:),:)(6)以逆序提取矩阵)以逆序提取矩阵A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:, j2:-1:j1 )(7)删除)删除A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i1:i2,:,:)= (8)删除)删除A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:,:, j1:j2)= (9)

21、将矩阵)将矩阵A和和B拼接成新矩阵:拼接成新矩阵:A B;A;B(3)依次提取矩阵)依次提取矩阵A的每一列,将的每一列,将A拉伸为一个列向量:拉伸为一个列向量:A(:)(:)例 a=1 2 3;4 5 6;7 8 9 a1=a(2,:) a1=4 5 6 a2=a(:,2) a2=2 5 8 a3=a(:)a3=123456789 a4=a(1:2,2:3) a4=2 3;5 6 a5=a(2:-1:1,:) a5=4 5 6;1 2 3 a6=a(:,3:-1:2) a6=3 2; 6 5; 9 8 a7=a; a7(1:2,:)= a7=7 8 9 a8=a; a8(:,1)= a8=2

22、3;5 6;8 9 a9=a a2 a9=1 2 3 2;4 5 6 5;7 8 9 8 a10=a;a1 a10=1 2 3;4 5 6;7 8 9;4 5 6 (2)矩阵)矩阵-矩阵运算矩阵运算 1 元素对元素元素对元素的运算,同数组的运算,同数组-数组运算。数组运算。 3、矩阵的运算、矩阵的运算(1)标量)标量-矩阵运算矩阵运算 同标量同标量-数组运算。数组运算。 2矩阵运算:矩阵运算:矩阵加法:矩阵加法:A+B矩阵乘法:矩阵乘法:A*B方阵的行列式:方阵的行列式:det(A)方阵的逆:方阵的逆:inv(A)方阵的特征值与特征向量:方阵的特征值与特征向量:V,D=eigAa=1 2;3

23、4;b= 3 5; 5 9a*b=13 23; 29 51a/b=-0.50 0.50;3.50 1.50ab=-1 -1;2 3a3=37 54; 81 118a.*b=3 10;15 36a./b=0.33 0.40;0.60 0.44a.b=3.00 2.50;1.67 2.25a.3= 1 8; 27 64 乘法运算与点运算运算与点运算 只有维数相同的矩阵才能进行加减运算。 注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。ab运算等效于运算等效于求求a*x=b的解;而的解;而a/b等等效于求效于求x*b=a的解。的解。只有方阵才可以求幂。 点运算点运算

24、是两个维数相同矩阵对应元素之间的运算,在有的教材中也定义为数组运算。 逆矩阵与行列式计算逆矩阵与行列式计算a=1 2 3; 4 5 6; 2 3 5;b=inv(a)b = -2.3333 0.3333 1.0000 2.6667 0.3333 2.0000 -0.6667 -0.3333 1.0000det(a)ans = -3例 a=1 2 3;4 5 6 b=1 2;1 2;1 2 c1=a+a c1=2 4 6;8 10 12 c2=a*b c2=6 12;15 30 C=2 7 3;3 9 4;1 5 3 C3=det(c) %方阵方阵C的行列式的行列式 C4=inv(c) %方阵方

25、阵C的逆的逆 v,d=eig(c) %方阵方阵C的特征值与特征向量的特征值与特征向量 对于实矩阵用()符号或(.)求转置结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而 (.)则只是将其排列形式进行转置。a=1 2 3;4 5 6a = 1 4 2 5 3 6b=1+2i 2-7ib = 1.0000 - 2.0000i 2.0000 + 7.0000ib=1+2i 2-7i.b = 1.0000 + 2.0000i 2.0000 - 7.0000i矩阵的矩阵的转置转置常用矩阵函数常用矩阵函数det(A) det(A) : 方阵的行列式;方阵的行列式;rank(A)ran

26、k(A): 矩阵的秩;矩阵的秩;eig(A)eig(A): 方阵的特征值和特征向量;方阵的特征值和特征向量;trace(A)trace(A): 矩阵的迹;矩阵的迹;rref(A)rref(A): 初等变换阶梯化矩阵初等变换阶梯化矩阵A Asvd(A)svd(A): 矩阵奇异值分解。矩阵奇异值分解。cond(A)cond(A): 矩阵的条件数;矩阵的条件数;在MATLAB中,多项式使用降幂系数的行向量表示,如:多项式 多项式处理多项式处理(1 1)多项式的建立与表示方法)多项式的建立与表示方法表示为:p=1 -12 0 25 116,。r=roots(p)r = 11.7473 2.7028 -

27、1.2251 + 1.4672i -1.2251 - 1.4672ip=poly(r)p = 1 -12 -0 25 116使用函数函数roots可以求出多项式等于0的根,根用列向量表示若已知多项式等于0的根,函数函数poly可以求出相应多项式。 多项式的运算多项式的运算多项式多项式相乘相乘conv a=1 2 3 ; b=1 2 c=conv(a,b)=1 4 7 6 conv指令可以嵌套使用,如conv(conv(a,b),c)多项式多项式相除相除deconv q,r=deconv(c,b) q=1 2 3 商多项式 r=0 0 0 余多项式求多项式的微分多项式求多项式的微分多项式poly

28、der polyder(a)=2 2求多项式函数值求多项式函数值polyval(p,n): 将值n代入多项式求解。 polyval(a,2)=11 多项式的拟合多项式的拟合 多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。命令格式:命令格式:p=polyfit(x,y,n), 其中x和y为样本点向量,n为所求多项式的阶数,p为求出的多项式。【例 】 对于给定数据对x0 , y0 ,求拟合三阶多项式,并图示拟合情况。x0=0:0.1:1;y0= -.447,1.978,3.11,5.25,5.02,4.6

29、6,4.01,4.58,3.45,5.35,9.22;n=3;P=polyfit(x0,y0,n) % 多项式拟合P = 56.6915 -87.1174 40.0070 -0.9043xx=0:0.01:1;yy=polyval(P,xx); % 拟合多项式的函数值plot(xx,yy,-b,x0,y0,.r,MarkerSize,20),xlabel(x) 采用三次多项式所得的拟合曲线用用MATLABMATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xixi处的插处的插值结果值结果n

30、earest :最邻近插值:最邻近插值linear : 线性插值;线性插值;spline : 三次样条插值;三次样条插值;cubic : 立方插值。立方插值。缺省时:缺省时: 分段线性插值。分段线性插值。 注意:所有的插值方法都要求注意:所有的插值方法都要求x x是单调的,并且是单调的,并且xi不能不能 够超过够超过x的范围。的范围。 在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method中,有4种选择: nearest:执行速度最快,输出结果为直角转折 linear:默认值,在样本点上斜率变化很大 spline:最花时间,但输出结果也最平滑 cubic:最占内存,输出结

31、果与spline差不多 所用指令有一维的interp1、二维的interp2、三维的interp3. 这些指令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统属性的要求. Help polyfun可以得到更详细的内容。例:在例:在1-121-12的的1111小时内,每隔小时内,每隔1 1小时测量一次温度,小时测量一次温度,测得的温度依次为:测得的温度依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424。试估计每隔。试估计每隔1/101/10小时的温度值。小时的温度值。hours=1:12;temp

32、s=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline); %直接输出数据将是很多的plot(hours,temps,+,h,t,hours,temps,r:) %作图xlabel(Hour),ylabel(Degrees Celsius)【例 】以所给数据,研究一维插值,并观察插值与拟合的区别。1.一维插值x0=0:0.1:1;y0=-.447,1.978,3.11,5.25,5.02, 4.66,4.01,4.58,3.45,5.35,9.22; xi=0:0.02:1;yi=interp1(

33、x0,y0,xi,cubic); plot(xi,yi,b,x0,y0,.r,MarkerSize,20),xlabel(x) 通过三次多项式插值所得的曲线x0=0:0.1:1;y0= -.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22;n=3;P=polyfit(x0,y0,n) % 多项式拟合P = 56.6915 -87.1174 40.0070 -0.9043xx=0:0.01:1;yy=polyval(P,xx); % 拟合多项式的函数值plot(xx,yy,-b,x0,y0,.r,MarkerSize,20),xlabe

34、l(x)2.多项式拟合采用三次多项式拟合所得的曲线 要求要求x0,y0x0,y0单调;单调;x x,y y可取可取为矩阵,或为矩阵,或x x取行向取行向量,量,y y取为列向量,取为列向量,x,yx,y的值分别不能超出的值分别不能超出x0,y0x0,y0的范的范围。围。z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearestnearest 最邻近插值最邻近插值linearlinear 双线性插值双线性插值cubiccubic 双三次插值双三次插值缺省时缺省时, , 双线性插值双线性

35、插值例:测得平板表面例:测得平板表面3*53*5网格点处的温度分别为:网格点处的温度分别为: 82 81 80 82 84 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 84 84 82 85 86 84 84 82 85 86 试作出平板表面的温度分布曲面试作出平板表面的温度分布曲面z=f(x,y)z=f(x,y)的图形。的图形。输入以下命令:x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps);1. 先在三维坐标画出原始数据,画出粗糙的温度分布

36、曲图.再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分布曲面图. 2以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.拟合与插值的关系拟合与插值的关系 函数插值与曲线拟合都是要根据一组数据构造一个函数作函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同为近似,由于近似的要求不同,二者的数学方法上是完全不同的。的。 实例:实例:下面数据是某次实验所得,希望得到X和 f之间的关系?问题:问题:给定一批数据点,需确

37、定满足特定要求的曲线或曲面解决方案:解决方案:若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合数据拟合,又称曲线拟合或曲面拟合。若要求所求曲线(面)通过所给所有数据点,就是插值问题插值问题;最临近插值与最临近插值与曲线拟合曲线拟合线性插值与线性插值与曲线拟合曲线拟合样条插值与样条插值与曲线拟合曲线拟合1、for循环:循环:允许一组命令以固定的和预定的次数重复允许一组命令以固定的和预定的次数重复 for x=array commands end 在在for和和end语句之间的命令串语句之间的命令串commands按数组(按数组(array)中)中的每一列执行一次

38、的每一列执行一次. 在每一次迭代中,在每一次迭代中,x被指定为数组的下一列,即被指定为数组的下一列,即在第在第n次循环中,次循环中,x=array(:,:,n)控制流控制流MATLAB提供三种决策或控制流结构:提供三种决策或控制流结构: for循环、循环、while循环、循环、if-else-end结构结构. 这些结构经常包含大量的这些结构经常包含大量的MATLAB命令,故经常出现在命令,故经常出现在MATLAB程序中,而不是直接加在程序中,而不是直接加在MATLAB提示符下提示符下. for n=1:10 x(n)=sin(n*pi/10);endxx = Columns 1 through

39、 5 0.3090 0.5878 0.8090 0.9511 1.0000 Columns 6 through 10 0.9511 0.8090 0.5878 0.3090 0.0000 例例 对对n=1,2,10,求求x(n)= 的值的值 while expression commands end 只要在表达式只要在表达式(expression)里的所有元素为真,就执行里的所有元素为真,就执行while和和end语句之间的命令串语句之间的命令串commands. 2、While循环循环 与与for循环以固定次数求一组命令相反,循环以固定次数求一组命令相反,while循环以不定的次循环以不定的

40、次数求一组语句的值数求一组语句的值. money=10000years=0while money1 f=x2+1endif x1 f=x2+1else if x=0 f=x3 else f=2*x endend【例】 利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。 % M函数文件tran.m: function gama,theta=tran(x,y) gama=sqrt(x*x+y*y); theta=atan(y/x); % 调用tran.m的命令文件main1.m: x=input(Please input x=:); y=input(Please input y=:);

41、 gama,theta=tran(x,y); gama theta【例】 利用函数的递归调用,求n!。 function f=factor(n) if n=1 f=1; else f=factor(n-1)*n; end return; %返回 在 命 令 文 件 main2.m中 调 用 函 数 文 件factor.m: for n=1:10 fac(n)=factor(n); end fac程序运行结果是: fac = Columns 1 through 6 1 2 6 24 120 720 Columns 7 through 10 504 40320 362880 3628800【例9】

42、 编写函数文件求小于任意自然数n的Fibonacci数列各项。% 用于求Fibonacci数列的函数文件 function f=ffib(n) f=1,1; i=1; while f(i)+f(i+1)n f(i+2)=f(i)+f(i+1); i=i+1; end以上文件以ffib.m文件存盘,然后在命令窗口输入:ffib(2000).符号微积分符号微积分用Matlab符号工具箱(Symbolic Toolbox)可以进行符号演算创建符号变量创建符号变量1.1.创建单个符号变量;创建单个符号变量; sym var sym var 2;2;创建多个符号变量;创建多个符号变量; syms var

43、1 var2 syms var1 var2 3. 3.创建符号表达式,赋予创建符号表达式,赋予f f; f=sym(f=sym(符号表达式符号表达式) ) 4. 4. 创建符号方程创建符号方程 。 equ=sym(equation) equ=sym(equation) 极限limit(表达式,var,a):求当var a,表达式的极限例:求极限:syms x limit(sin(x)-sin(3*x)/sin(x),x,0)运行结果 -2【例】求解单边极限问题Syms x;limit(exp(x3)-1)/(1-cos(sqrt(x-sin(x),x,0,right)【例例】试求解极限问题sy

44、ms x a b;f=x*(1+a/x)x*sin(b/x);L=limit(f,x,inf)求导求导求导求导diff(f,diff(f,varvar,n),n) 求求 f f 对变量对变量var var 的的n n阶导数阶导数缺省缺省n n时为求一阶导数时为求一阶导数缺省变量缺省变量var var 时,默认变量为时,默认变量为x x可用来求单变量函数导数可用来求单变量函数导数多变量函数的偏导数多变量函数的偏导数还可以求抽象函数的导数还可以求抽象函数的导数例:例:求求syms x y syms x y f=sym(exp(-2*x) * f=sym(exp(-2*x) * cos(3 *cos

45、(3 * x(1/2)x(1/2) diff(f,x) diff(f,x)例:例:% pretty习惯方式显示syms x;f=sin(x)/(x2+4*x+3);f1=diff(f);pretty(f1)syms x;f=sin(x)/(x2+4*x+3);f1=diff(f);pretty(f1)syms x;f=sin(x)/(x2+4*x+3);f2=diff(f,x,2);pretty(f2)% 求函数的4阶导数。syms x;f=sin(x)/(x2+4*x+3);f4=diff(f,x,4);pretty(f4)syms x y g=sym(g(x,y) f=sym(f(x,y,

46、g(x,y) diff(f,x)diff(f,x,2) 运行例:求例:求u=f(x,y,z),z=g(x,y)u=f(x,y,z),z=g(x,y)的偏导数的偏导数. .求偏导数求偏导数例. 求z=xy的偏导数. syms x y z=xy; Zx=diff(z,x) Zy=diff(z,y)例. 求z=x*y的偏导数.syms x yz=x*y;Zx=diff(z,x)Zy=diff(z,y)例:例:% simple运用各种指令化简符号表达式例:例:积分int(f,var)int(f,var):求函数:求函数f f的不定积分;的不定积分;int(f, var, int(f, var, 积分下

47、限,积分上限积分下限,积分上限) ): 求函数求函数f f的定积分或广义积分的定积分或广义积分例:求不定积分例:求不定积分syms x y zsyms x y z I1=int(sin(x*y+z),z) I1=int(sin(x*y+z),z)syms x y zsyms x y z I2=int(1/(3+2*x+x2),x,0,1) I2=int(1/(3+2*x+x2),x,0,1) I3=int(1/(3+2*x+x2),x,-inf,inf) I3=int(1/(3+2*x+x2),x,-inf,inf)例:例:syms x y z I2=int(cos(x)/(1+(sin(x)

48、2),x,0,1)例:例:化简、提取和代入符号运算的结果比较繁琐,使用化简指令可对其进行化简。常用的化简指令如下 展开指令:expand(表达式); 因式分解:factor(表达式) 降幂排列:collect(表达式,var) ; 一般化简:simplify(A); 将表达式将表达式t=(a+x)6-(a-x)6t=(a+x)6-(a-x)6展开,展开, 然后作因式分解。然后作因式分解。syms a t xsyms a t xt=(a+x)6-(a-x)6t=(a+x)6-(a-x)6t_expand=expand(t)t_expand=expand(t)t_factor=factor(t_e

49、xpand)t_factor=factor(t_expand)t_simplify=simplify(t) t_simplify=simplify(t) 例例.对以下问题,编写M文件:(1)用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小的调到前头.(2)有一个 矩阵,编程求出其最大值及其所处的位置.(3)编程求(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高?(5)有一函数 ,写一程序,输入自变量的值,输出函数值.实验作业实验作业132 以上有不当之处,请大家给与批评指正,以上有不当之处,请大家给与批评指正,谢谢大家!谢谢大家!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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