Matlab基础知识课件

上传人:阳*** 文档编号:110853370 上传时间:2022-06-19 格式:PPT 页数:122 大小:1.39MB
收藏 版权申诉 举报 下载
Matlab基础知识课件_第1页
第1页 / 共122页
Matlab基础知识课件_第2页
第2页 / 共122页
Matlab基础知识课件_第3页
第3页 / 共122页
资源描述:

《Matlab基础知识课件》由会员分享,可在线阅读,更多相关《Matlab基础知识课件(122页珍藏版)》请在装配图网上搜索。

1、Matlab基础知识数学建模专题一数学建模专题一Matlab基础基础数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识引言引言q Matlab: Matrix Laboratry 矩阵实验室矩阵实验室q 选择选择Matlab的理由的理由 Matlab功能强大。功能强大。 操作简单,容易上手。操作简单,容易上手。 Matlab应用非常广泛。应用非常广泛。 易于扩展。易于扩展。数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.Matlab3.Matlab编程编

2、程4.4.符号运算符号运算5.Matlab5.Matlab绘图绘图Matlab基础知识1. Matlab基本用法数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识基本用法提纲基本用法提纲q Matlab帮助系统q Matlab变量q 变量的读取与存储q 矩阵数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab 的工作界面的工作界面命令窗口命令窗口当前工当前工作目录作目录当前工当前工作空间作空间输入命令的输入命令的历史记录历史记录命令命令提示符提示符数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 矩阵的直接排列输入

3、矩阵的直接排列输入例:例: A = 1 2 3; 4 5 6; 7 8 9矩阵矩阵q Matlab 的操作对象是的操作对象是 矩阵矩阵q 矩阵元素可以是任何数值表达式矩阵元素可以是任何数值表达式例:例: x = -1.3, sqrt(3), (1+2+3)*4/5 q 大矩阵可以把小矩阵作为其元素大矩阵可以把小矩阵作为其元素例:例: A = A; 11 12 13 在原矩阵的下方加一行在原矩阵的下方加一行如何在原矩阵的右边添加一列?如何在原矩阵的右边添加一列?数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 单个元素的引用单个元素的引用例:例: A(2,3)矩阵元素的

4、引用矩阵元素的引用q 多个元素的引用:多个元素的引用:冒号的特殊用法冒号的特殊用法利用小括弧和元素所在的位置(下标)利用小括弧和元素所在的位置(下标)x(i):向量向量 x 中的第中的第 i 个元素个元素A(i, j):矩阵矩阵 A 中的第中的第 i 行,第行,第 j 列元素列元素a:b:c产生一个由产生一个由等差序列等差序列组成的向量;组成的向量; a 是首项,是首项,b 是公是公差,差,c 确定确定最后一项;若最后一项;若 b=1,则则 b 可以省略。可以省略。例:例: x=1:2:5 y=1:2:6例:例: x=2:1:5 y=2:5例:例: x=3:2:1数学建模专题一数学建模专题一

5、Matlab 基础基础Matlab基础知识q 多个元素的引用多个元素的引用(续)(续)例:例: x(1:3)矩阵元素的引用矩阵元素的引用 A(3,1:3)A(i:j, m:n) 表示由矩阵表示由矩阵 A 的第的第 i 到第到第 j 行和第行和第 m 到第到第 n列交叉线上的元素组成的列交叉线上的元素组成的子矩阵子矩阵。可利用冒号提取矩阵可利用冒号提取矩阵 的整行或整列。的整行或整列。例:例: A(1, :) A(:, 1:2) A(:, :)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab帮助系统帮助系统q 联机帮助联机帮助help 显示指定命令的简短使用说

6、明显示指定命令的简短使用说明例:例: help eig help help q 详细使用帮助详细使用帮助doc 以网页形式以网页形式显示指定命令的帮助页显示指定命令的帮助页例:例: doc eig q lookfor 按指定的关键词查询与之相关的命令按指定的关键词查询与之相关的命令例:例: lookfor inverse 数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 变量命名原则变量命名原则Matlab 变量变量u 以以字母开头字母开头u 后面可以跟后面可以跟 字母、数字字母、数字 和和 下划线下划线u 长度长度不超过不超过 63 个字符个字符(6.5 版本以前为

7、版本以前为 19 个个)u 变量名变量名 区分字母的区分字母的 大小大小 写写q Matlab 语句的通常形式语句的通常形式变量变量=表达式表达式表达式是用运算符将有关运算量连接起来的式子,表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号其结果被赋给赋值号“=”左边的变量左边的变量数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 分号和续行符的作用分号和续行符的作用Matlab 变量变量若不想在屏幕上输出结果,可以在语句最后加分号若不想在屏幕上输出结果,可以在语句最后加分号 如果语句很长,可用续行符如果语句很长,可用续行符 “”(三个点)续行(三个点)续

8、行 续行符的前面最好留一个空格续行符的前面最好留一个空格例:例:数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 变量的查询变量的查询Matlab 变量变量who 显示工作空间中的所有变量显示工作空间中的所有变量whos 查看工作空间中变量的详细属性查看工作空间中变量的详细属性数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 系统预定义变量系统预定义变量Matlab 变量变量u pi 圆周率圆周率 u inf/Inf 无穷大无穷大 u nan/NaN Not-a-Number,一个不定值,如,一个不定值,如 0/0u eps 浮点浮点运算相对

9、精度运算相对精度 q 特殊变量特殊变量 ansu i/j 虚部单位,即虚部单位,即1 应尽量避免给系统预定义变量重新赋值!应尽量避免给系统预定义变量重新赋值!数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识变量的存储变量的存储q 存储当前工作空间中的变量存储当前工作空间中的变量u save 将所有变量存入文件将所有变量存入文件 matlab.matu save mydata 将所有变量存入将所有变量存入指定文件指定文件 mydata.matq 存储存储指定指定的变量的变量u save mydata.mat 将所有变量存入将所有变量存入文件文件 mydata.matsav

10、e 文件名文件名 变量名列表变量名列表例例: save mydata A x z 变量名列表中各变量之间用空格分隔。变量名列表中各变量之间用空格分隔。数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识变量的读取变量的读取q 将数据文件中的变量载入当前工作空间将数据文件中的变量载入当前工作空间u load mydata 载入数据文件中的所有变量载入数据文件中的所有变量u load mydata A x 从数据文件中提取指定变量从数据文件中提取指定变量q 清除当前工作空间中的变量清除当前工作空间中的变量u clear 清除当前工作空间中的所有变量清除当前工作空间中的所有变量u

11、 clear A x 清除指定的变量清除指定的变量数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.Matlab3.Matlab编程编程4.4.符号运算符号运算5.Matlab5.Matlab绘图绘图6.6.其它补充知识其它补充知识Matlab基础知识2. 向量与矩阵的生成和运算数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识向量与矩阵的生成与运算提纲向量与矩阵的生成与运算提纲q 常用矩阵操作命令q 矩阵的基本运算q 矩阵的数组运算q 向量与矩阵的生成数

12、学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 向量与矩阵的生成向量与矩阵的生成向量与矩阵生成向量与矩阵生成u 向量的生成向量的生成 直接输入直接输入: a=1,2,3,4 冒号冒号运运算符算符a=1:4 = = a=1, 2, 3, 4b=0:pi/3:pi = b=0, 1.0472, 2.0944, 3.1416c=6:-2:0 = c = 6, 4, 2, 0例例: 从矩阵中抽取行或列从矩阵中抽取行或列数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 向量与矩阵的生成(续)向量与矩阵的生成(续)向量与矩阵生成向量与矩阵生成u 矩阵的生

13、成矩阵的生成 直接输入直接输入: A=1, 2, 3; 4, 5, 6; 7, 8, 9 由向量生成由向量生成 由函数生成由函数生成例例: x=1,2,3;y=2,3,4; A=x,y, B=x;y例例: C=magic(3)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识常见矩阵生成函数常见矩阵生成函数zeros(m,n)生成一个生成一个 m 行行 n 列的零矩阵,列的零矩阵,m=n 时可简写为时可简写为 zeros(n)ones(m,n)生成一个生成一个 m 行行 n 列的元素全为列的元素全为 1 的矩阵的矩阵, m=n 时可写为时可写为 ones(n)eye(m,

14、n)生成一个主对角线全为生成一个主对角线全为 1 的的 m 行行 n 列矩阵列矩阵, m=n 时可简写为时可简写为 eye(n),即为即为 n 维单位矩阵维单位矩阵diag(X)若若 X 是矩阵,则是矩阵,则 diag(X) 为为 X 的主对角线向量的主对角线向量若若 X 是向量,是向量,diag(X) 产生以产生以 X 为主对角线的对角矩阵为主对角线的对角矩阵tril(A)提取一个矩阵的下三角部分提取一个矩阵的下三角部分triu(A)提取一个矩阵的上三角部分提取一个矩阵的上三角部分rand(m,n)产生产生 01 间均匀分布的随机矩阵间均匀分布的随机矩阵 m=n 时简写为时简写为 rand(

15、n)randn(m,n)产生均值为产生均值为0,方差为,方差为1的标准正态分布随机矩阵的标准正态分布随机矩阵m=n 时简写为时简写为 randn(n)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵操作矩阵操作q 提取矩阵的部分元素:提取矩阵的部分元素: 冒号运算符冒号运算符u A(:) A的所有元素的所有元素u A(:,:) 二维矩阵二维矩阵A的所有元素的所有元素u A(:,k) A的第的第 k 列,列, A(k,:) A的第的第 k 行行 u A(k:m) A的第的第 k 到第到第 m 个元素个元素u A(:,k:m) A的第的第 k 到第到第 m 列组成的子矩

16、阵列组成的子矩阵数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵操作矩阵操作q 矩阵的旋转矩阵的旋转u fliplr(A) 左右旋转左右旋转u flipud(A) 上下旋转上下旋转u rot90(A) 逆时针旋转逆时针旋转 90 度;度; rot90(A,k) 逆时针旋转逆时针旋转 k90 度度例例: A=1 2 3;4 5 6 B=fliplr(A) C=flipud(A) D=rot90(A), E=rot90(A,-1)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵操作矩阵操作q 矩阵的转置与共轭转置矩阵的转置与共轭转置u 共轭转

17、置共轭转置u . 转置,矩阵元素不取共轭转置,矩阵元素不取共轭例例: A=1 2;2i 3i B=A C=A.点与单引号之间不能有空格点与单引号之间不能有空格!数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵操作矩阵操作q 改变矩阵的形状:改变矩阵的形状:reshape数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵操作矩阵操作q 查看矩阵的大小:查看矩阵的大小:sizeu size(A) 列出矩阵列出矩阵 A 的的行数和列数行数和列数u size(A,1) 返回矩阵返回矩阵 A 的的行数行数u size(A,2) 返回矩阵返回矩阵 A

18、的的列列数数例例: A=1 2 3; 4 5 6 size(A) size(A,1) size(A,2)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵基本运算矩阵基本运算q 矩阵的加减矩阵的加减:对应分量进行运算对应分量进行运算要求参与加减运算的矩阵具有要求参与加减运算的矩阵具有 相同的维数相同的维数例例: A=1 2 3; 4 5 6; B=3 2 1; 6 5 4 C=A+B; D=A-B;q 矩阵的普通乘法矩阵的普通乘法要求参与运算的矩阵满足线性代数中矩阵相乘要求参与运算的矩阵满足线性代数中矩阵相乘的的原则原则例例: A=1 2 3; 4 5 6; B=2

19、1; 3 4; C=A*B数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵基本运算矩阵基本运算q 矩阵的矩阵的除法除法:/、 右除和左除右除和左除 若 A 可逆方阵,则AB A 的逆左乘的逆左乘 B = inv(A)*BB/A A 的逆右乘的逆右乘 B B*inv(A)q乘幂:A 是方阵,p 是正整数 Ap 表示 A 的 p 次幂,即 p 个 A 相乘。 数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识矩阵的数组运算矩阵的数组运算q 数组运算:数组运算:对应元素进行运算点与算术运算符之间不能有空格!u 数组运算包括:数组运算包括:点乘点乘、点

20、除点除、点幂点幂u 相应的数组运算符为:相应的数组运算符为: “.* ” , “./ ” , “. ” 和和“ . ”参与运算的对象必须具有相同的形状!参与运算的对象必须具有相同的形状!例例: A=1 2 3; 4 5 6; B=3 2 1; 6 5 4; C=A.*B; D=A./B; E=A.B; F=A.B;数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab中常见数学函数中常见数学函数sin、cos、tan、cot、sec、csc、asin、acos、atan、acot、asec、acsc、exp、log、log2、log10、sqrtabs、conj、

21、real、imag、signfix、floor、ceil、round、mod、remmax、min、sum、mean、sort、fftnorm、rank、det、inv、eig、lu、qr、svd数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.Matlab3.Matlab编程编程4.4.符号运算符号运算5.Matlab5.Matlab绘图绘图Matlab基础知识3. Matlab编程入门数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab编程入

22、门提纲编程入门提纲q 关系运算符q 逻辑运算符q 程序结构控制语句q 函数M文件的编写q M文件数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab 编程入门编程入门q Matlab 编程简介u Matlab 作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和 C、FORTRAN 等高级语言一样进行程序设计。u 在 Matlab 程序设计中,要充分利用 Matlab 数据结构的特点,提高编程效率。数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 用 Matlab 语言编写的

23、程序称为 M 文件, 文 件以 .m为扩展名。q M 文件根据调用方式的不同可以分为两类:u Script:脚本文件/命令文件 u Function:函数文件 M 文件文件数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识u 在命令窗口中输入 f2cs,即可执行该 M 文件。5(32)9cf例:编写一个脚本文件将华氏温度转化为摄氏温度脚本文件举例脚本文件举例clear; % 清除当前工作空间中的变量f=input(Please input Fahrenheit temperature:);c=5*(f-32)/9;fprintf(The centigrade temper

24、ature is %gn,c);u 新建一个 M 文件 f2cs.m,内容如下:数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识关系运算关系运算小于小于大于大于=大于等于大于等于=等于等于=不等于不等于l 比较大小,如果结论是 真真 则返回 1 ,否则返回 0l 关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。q 关系关系运算符运算符数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识例:例:关系运算举例关系运算举例 2+2=4 23 A=1 3 5; 2 0

25、 6; B=3 1 0; 2 4 6; A=B x=5 0; 4 2; x1 EPS=EPS/2; num=num+1;end数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识u break 和 continuel break 语句用于终止循环的执行,即跳出最内层循环 l continue 语句用于结束本次循环,进行下一次循环 l break 和 continue 一般与 if 语句配合使用其它流控制语句其它流控制语句u returnl return 语句用于退出正在运行的脚本或函数,通常用在函数文件中。数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础

26、知识function 输出形参列表输出形参列表=函数名函数名(输入形参列表输入形参列表)% 注释说明部分注释说明部分(可选可选)函数体语句函数体语句(必须必须)u 第一行为第一行为引导行引导行,表示该,表示该 M文件是函数文件文件是函数文件u 函数名的命名规则与变量名相同函数名的命名规则与变量名相同 ( 必须以字母开头必须以字母开头 )u 当输出行参多于一个时,用当输出行参多于一个时,用方括号方括号括起来括起来u 函数必须是一个函数必须是一个单独的单独的 M文件文件u 函数函数文件名必须与函数名一致文件名必须与函数名一致u 以以百分号百分号开始的语句为开始的语句为注释语句注释语句函数函数m文件

27、的编写与调用文件的编写与调用q 函数文件由函数文件由 function 语句引导语句引导数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识function y = myfliplr(x)% returns X with row preserved and columns% flipped in the left/right direction% % X = 1 2 3 becomes 3 2 1% 4 5 6 6 5 4% num_col=size(x,2); % 取取 x 的列数的列数y = x(:,num_col:-1:1);函数文件举例函数文件举例myfliplr.

28、m数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.Matlab3.Matlab编程编程4.4.符号运算符号运算5.Matlab5.Matlab绘图绘图Matlab基础知识4. Matlab符号运算数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识符号运算提纲符号运算提纲q 因式分解、展开、合并、简化及通分等q 计算极限q 计算导数q 计算积分q 符号求和q 代数方程和微分方程求解q 符号对象的建立数学建模专题一数学建模专题一 Matlab 基础基础Mat

29、lab基础知识Matlab 符号运算介绍符号运算介绍q Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。Matlab 符号数学工具箱是建立在功能强大的 Maple 软件的基础上的,当 Matlab 进行符号运算时,它就请求 Maple 软件去计算并将结果返回给 Matlab。 q Matlab 的符号数学工具箱可以完成几乎所有得符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Mat

30、lab 符号运算举例符号运算举例u 求一元二次方程 ax2 + bx + c = 0 的根 solve(a*x2+b*x+c)u 求的根 f (x) = (cos x)2 的一次导数 x=sym(x); diff(cos(x)2)u 计算 f (x) = x2 在区间 a, b 上的定积分 syms a b x; int(x2,a,b)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识u sym 函数用来建立单个符号变量,一般调用格式为:q 符号对象的建立:sym 和 syms符号对象符号对象的建立的建立例: a=sym(a) 符号变量 = sym(A)参数 A 可以是一

31、个数或数值矩阵,也可以是字符串a 是符号变量b 是符号常量 b=sym(1/3)c 是符号矩阵 c=sym(1 ab; e d)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 符号对象的建立:sym 和 syms符号对象符号对象的建立的建立u syms 命令用来建立多个符号变量,一般调用格式为:syms 符号变量符号变量1 符号变量符号变量2 . 符号变量符号变量n 例: syms a b c a=sym(a); b=sym(b); c=sym(c);数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 符号表达式的建立:例:建立符号表达式通常

32、有以下2种方法:(1) 用 sym 函数直接建立符号表达式。(2) 使用已经定义的符号变量组成符号表达式。 y=sym(sin(x)+cos(x) x=sym(x); y=sin(x)+cos(x)符号符号表达式表达式的建立的建立数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识符号表达式的替换符号表达式的替换subs(f,x,a) 用用 a 替换字符函数替换字符函数 f 中的字符变量中的字符变量 x a 是可以是是可以是 数数/数值变量数值变量/表达式表达式 或或 字符变量字符变量/表达式表达式q 用给定的数据替换符号表达式中的指定的符号变量数学建模专题一数学建模专题一

33、 Matlab 基础基础Matlab基础知识subs 举例举例 f=sym(2*u); subs(f,u,2) f2=subs(f,u,u+2) a=3; subs(f2,u,a+2) subs(f2,u,a+2) syms x y f3=subs(f,u,x+y) subs(f3,x,y,1,2)ans=4f2=2*(u+2)ans=14ans=2*(a+2)+2)f3=2*x+2*yans=6u 例:指出下面各条语句的输出结果f=2*u下面的命令运行结果会是什么? subs(f3,x,y,x+y,x+y)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识六六类常见符号

34、运算类常见符号运算q 因式分解、展开、合并、简化及通分等q 计算极限q 计算导数q 计算积分q 符号求和q 代数方程和微分方程求解数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识因式分解、展开、合并、简化等u 因式分解factor(f)u 函数展开expand(f)u 合并同类项collect(f,v): 按指定变量按指定变量 v 进行进行合并合并collect(f): 按按默认默认变量变量进行进行合并合并数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识计算极限计算极限limit(f,x,a): 计算计算limit(f,a): 当当默认变量默认变

35、量趋向于趋向于 a 时的极限时的极限limit(f): 计算计算 a=0 时的极限时的极限limit(f,x,a,right): 计算右极限计算右极限limit(f,x,a,left): 计算左极限计算左极限lim( )xaf x例:计算例:计算 ,hxhxLh)ln()ln(lim0nnnxM1lim syms x h n; L=limit(log(x+h)-log(x)/h,h,0) M=limit(1-x/n)n,n,inf)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识计算计算导数导数g=diff(f,v):求符号表达式求符号表达式 f 关于关于 v 的导数的

36、导数g=diff(f):求符号表达式求符号表达式 f 关于关于默认变量默认变量的导数的导数g=diff(f,v,n):求求 f 关于关于 v 的的 n 阶导数阶导数q diff syms x; f=sin(x)+3*x2; g=diff(f,x)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识计算计算积分积分int(f,v,a,b): 计算定积分计算定积分int(f,a,b): 计算关于计算关于默认变量默认变量的定积分的定积分int(f,v): 计算不定积分计算不定积分int(f): 计算关于计算关于默认变量默认变量的不定积分的不定积分 syms x; f=(x2+1)

37、/(x2-2*x+2)2; I=int(f,x) K=int(exp(-x2),x,0,inf)( )baf v dv ( )f v dv 例:计算例:计算 和和2221(22)xIdxxx 20 xKedx 数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识u 梯形法:trapztrapz(x,y)x 为分割点(节点)组成的向量,y 为被积函数在节点上的函数值组成的向量。22)(110nnbayyyynabdxxf,x10nxxx01y (),(),()nf xf xf xq Matlab 近似计算定积分的相关函数Matlab 数值积分函数数值积分函数数学建模专题一数学

38、建模专题一 Matlab 基础基础Matlab基础知识u 例:用梯形法计算下面定积分 ( 取 n=100) 1021xdx解: x=0:1/100:1; y=1./(1+x.2); trapz(x, y)trapz(x,1./(1+x.2)trapz 举例举例数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识quad(f,a,b,tol)f = f(x) 为被积函数,a,b 为积分区间,tol 为计算精度将自变量看成是将自变量看成是向量向量badxxf)(u 抛物线法:quadl 不用自己分割积分区间l 可以指定计算精度,若不指定,缺省精度是 10-6l 精度越高,函数运

39、行的时间越长l 此处的函数 f 是数值形式,应该使用数组运算,即 点运算:.*,./ ,. ,. 注:抛物线法抛物线法数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识1021xdx解:解: quad(1./(1+x.2),0,1) quad(1./(1+x.2),0,1,10e-10) quad(1./(1+x.2),0,1,10e-16)函数表达式一定要用函数表达式一定要用 单引号单引号 括起来!括起来!涉及的运算一定要用涉及的运算一定要用 数组运算数组运算!u 例:用 quad 计算定积分:quad 举例举例数学建模专题一数学建模专题一 Matlab 基础基础Mat

40、lab基础知识q 抛物线法计算二重积分: dblquaddblquad(f,a,b,c,d,tol)u tol 为计算精度,若不指定,则缺省精度为 10-6 badcdxdyyxf),(u f(x,y) 可以由 inline 定义,或通过一个函数句柄传递u a,b 是第一积分变量的积分区间,c,d 是第二积分变量 的积分区间按字母顺序,大写字母排在小写字母的前面二重积分的计算二重积分的计算数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识21201(43)Ixyydxdy f=inline(4*x*y+3*y2); I=dblquad(f, -1,1,0,2)u f(x,

41、y) 中关于第一自变量的运算是数组运算, 即把 x 看成是向量,y 看成是标量。 也可以全部采用数组运算例2:计算二重积分 20112)34(dxdyxxy dblquad(inline(4*x*y+3*x2),-1,1,0,2) dblquad(inline(4*x*y+3*x.2),-1,1,0,2)X例1:计算二重积分dblquad 举例举例数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识例:计算二重积分 20112)34(dxdyxxy dblquad(x,y)4*x*y+3*x.2 , -1,1, 0, 2)指定 x、y 分别是第一第一和第二第二积分变量 db

42、lquad(inline(4*x*y+3*x.2), -1,1, 0, 2)q 被积函数 f (x,y) 的另一种定义方法:匿名函数 dblquad(y,x)4*x*y+3*x.2 , -1,1, 0, 2)下面的命令运行结果和上面的一样吗?dblquad 举例举例数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识221dxex x=1:0.001:2; y=exp(x.(-2); trapz(x,y)l 梯形法:l 抛物线法: quad(exp(x.(-2),1,2,10e-10)l 符号积分法: syms x int(exp(x(-2),x,1,2)例 1:用 Mat

43、lab 函数近似计算积分数值实验数值实验数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识20112)(dyyxdxl 抛物线法: dblquad(inline(x+y2),0,2,-1,1)l 符号积分法: f=int(x+y2,y,-1,1); int(f,0,2)数值实验数值实验例 2:用 Matlab 函数近似计算二重积分数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识符号求和符号求和 syms n; f=1/n2; S=symsum(f,n,1,inf) S100=symsum(f,n,1,100)symsum(f,v,a,b): 求和求

44、和symsum(f,a,b): 关于关于默认变量默认变量求和求和( )bv af v 例:计算级数例:计算级数 及其前及其前100项的部分和项的部分和211nSn 例:计算函数级数例:计算函数级数21nxSn syms n x; f=x/n2; S=symsum(f,n,1,inf)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识代数方程和微分方程代数方程和微分方程求解求解u 代数方程求解solve(f,v):求方程关于指定自变量的解,求方程关于指定自变量的解,f 可以是可以是用字符串表示的方程用字符串表示的方程、符号表达式符号表达式或或符号方程符号方程;u 微分方程求

45、解数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 自牛顿发明微积分以来,微分方程在描述事物运自牛顿发明微积分以来,微分方程在描述事物运动规律上已发挥了重要的作用。实际应用问题通过动规律上已发挥了重要的作用。实际应用问题通过数学建模所得到的方程,绝大多数是微分方程。数学建模所得到的方程,绝大多数是微分方程。q 由于实际应用的需要,人们必须求解微分方程。由于实际应用的需要,人们必须求解微分方程。然而能够求得解析解的微分方程十分有限,绝大多然而能够求得解析解的微分方程十分有限,绝大多数微分方程需要利用数值方法来近似求解。数微分方程需要利用数值方法来近似求解。微分方程求解微

46、分方程求解数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识符号解法符号解法dsolve 求解析解求解析解q dsolve 的使用的使用y=dsolve(eq1,eq2, . ,cond1,cond2, . ,v)其中其中 y 为输出,为输出, eq1、eq2、.为微分方程,为微分方程,cond1、cond2、.为初值条件,为初值条件,v 为自变量。为自变量。例例 1:求微分方程求微分方程 的通解,并验证。的通解,并验证。22xdyxyxedx y=dsolve(Dy+2*x*y=x*exp(-x2),x) syms x; diff(y)+2*x*y - x*exp(-x

47、2)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识dsolve 的使用的使用q 几点说明几点说明l 如果省略初值条件,则表示求通解;如果省略初值条件,则表示求通解;l 如果省略自变量,则默认自变量为如果省略自变量,则默认自变量为 t dsolve(Dy=2*x,x); dy/dx = 2xdsolve(Dy=2*x); dy/dt = 2xl 微分方程中用微分方程中用 D 表示对表示对 自变量自变量 的导数,如:的导数,如:Dy y; D2y y; D3y y数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识dsolve 举例举例例例 2:求微分

48、方程求微分方程 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。0 xxyye y=dsolve(x*Dy+y-exp(x)=0,y(1)=2*exp(1),x) ezplot(y);12( )ye 数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识dsolve 举例举例例例3:求微分方程组求微分方程组 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。530tdxxyedtdyxydt x,y=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=0, . x(0)=1, y(0)=0, t)e

49、zplot(x,y,0,1.3);0010|ttxy 数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q Euler折线法折线法数值求解:数值求解:Euler 折线法折线法q Runge-Kutta(龙格(龙格-库塔)方法库塔)方法q 利用利用Matlab函数求数值解函数求数值解数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识初值问题的初值问题的Euler折线法折线法q 具体步骤:具体步骤:等距剖分:等距剖分:0121nnaxxxxxb 步长:步长:1 0 1 21()/, , ,kkhxxknnba u 分割求解区间分割求解区间u 差商代替微商

50、差商代替微商1()()kkky xy xdydxhx 1 ()()()kkky xy xh yx 得方程组:得方程组:0011 ()(,)kkkkkkyy xyyh f xyxxh 分割求解区间,差商代替微商,解代数方程分割求解区间,差商代替微商,解代数方程 为分割点为分割点 0nkkx k = 0, 1, 2, ., n-1yk 是是 y (xk) 的近似的近似数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Euler 折线法举例折线法举例例:例:用用 Euler 法解初值问题法解初值问题22 0 201 , ( )dyxydxyxy 取步长取步长 h = (2 -

51、0)/n = 2/n,得差分方程得差分方程00110 1 2 ,(,)(/)kkkkkkkkkkxyyyh f xyyh yxyxxh 当当 h=0.4,即即 n=5 时,时,Matlab 源程序见源程序见 fuluA.m解:解:数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Euler 折线法源程序折线法源程序clearf=sym(y+2*x/y2);a=0; b=2;h=0.4;n=(b-a)/h+1; % n=(b-a)/h;x=0; y=1;szj=x,y;for i=1:n-1 % i=1:n y=y+h*subs(f,x,y,x,y); x=x+h; szj

52、=szj;x,y;endszjplot(szj(:,1),szj(:,2),or-)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识 Euler折线法举例(续)折线法举例(续)解析解:解析解:1 3352233/xyex 解析解解析解近似解近似解数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Runge-Kutta 方法方法q 为了减小误差,可采用以下方法:为了减小误差,可采用以下方法:u 让步长让步长 h 取得更小一些;取得更小一些;u 改用具有较高精度的数值方法:改用具有较高精度的数值方法:q 龙格龙格-库塔方法库塔方法Runge-Kutta

53、 (龙格龙格-库塔库塔) 方法方法u 是是一类一类求解常微分方程的数值方法求解常微分方程的数值方法u 有多种不同的迭代格式有多种不同的迭代格式数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Runge-Kutta 方法方法q 用得较多的是用得较多的是 四阶四阶R-K方法方法00111234 (22)/6(),kkkkyy xxxhyyh LLLL 12132432222(,)(/ ,/ )(/ ,/ )(,)kkkkkkkkLf xyLf xhyhLLf xhyhLLf xh yhL 其中其中数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识四阶四

54、阶 R-K 方法方法源程序源程序clear;f=sym(y+2*x/y2);a=0; b=2; h=0.4;n=(b-a)/h+1; % n=(b-a)/h;x=0; y=1; szj=x,y;for i=1:n-1 % i=1:n l1=subs(f,x,y,x,y); l2=subs(f,x,y,x+h/2,y+l1*h/2); l3=subs(f,x,y,x+h/2,y+l2*h/2); l4=subs(f,x,y,x+h,y+l3*h); y=y+h*(l1+2*l2+2*l3+l4)/6; x=x+h; szj=szj;x,y;endplot(szj(:,1),szj(:,2), d

55、g-)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Runge-Kutta 方法方法数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Euler 法与法与 R-K法误差比较法误差比较数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab函数数值求解函数数值求解T,Y = solver(odefun,tspan,y0)其中其中 y0 为初值条件,为初值条件,tspan为求解区间;为求解区间;Matlab在数值求解在数值求解时时自动对求解区间进行分割自动对求解区间进行分割,T (向量向量) 中返回的是分割点的中返回的是分

56、割点的值值(自变量自变量),Y (向量向量) 中返回的是解函数在这些分割点上的中返回的是解函数在这些分割点上的函数值。函数值。solver 为为Matlab的的ODE求解器求解器(可以是(可以是 ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb)没有一种算法可以有效地解决所有的没有一种算法可以有效地解决所有的 ODE 问题,因此问题,因此MATLAB 提供了多种提供了多种ODE求解器求解器,对于不同的对于不同的ODE,可以调用不同的可以调用不同的求解器求解器。数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab提供的

57、提供的ODE求解器求解器求解器求解器 ODE类型类型特点特点说明说明ode45非刚性非刚性单步法;单步法;4,5 阶阶 R-K 方法;方法;累计截断误差为累计截断误差为 (x)3大部分场合的大部分场合的首选方法首选方法ode23非刚性非刚性单步法;单步法;2,3 阶阶 R-K 方法;方法;累计截断误差为累计截断误差为 (x)3使用于精度较低的情形使用于精度较低的情形ode113非刚性非刚性多步法;多步法;Adams算法;高低精算法;高低精度均可到度均可到 10-310-6计算时间比计算时间比 ode45 短短ode23t适度刚性适度刚性 采用梯形算法采用梯形算法适度刚性情形适度刚性情形ode1

58、5s刚性刚性多步法;多步法;Gears 反向数值微反向数值微分;精度中等分;精度中等若若 ode45 失效时,可失效时,可尝试使用尝试使用ode23s刚性刚性单步法;单步法;2 阶阶Rosebrock 算算法;低精度法;低精度当精度较低时,计算时当精度较低时,计算时间比间比 ode15s 短短ode23tb刚性刚性梯形算法;低精度梯形算法;低精度当精度较低时,计算时当精度较低时,计算时间比间比ode15s短短数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识参数说明参数说明odefun 为为显式常微分方程显式常微分方程,可以用命令,可以用命令 inline 定义,或定义,

59、或在在函数文件函数文件中定义,然后通过函数句柄调用。中定义,然后通过函数句柄调用。fun=inline(-2*y+2*x2+2*x,x,y);x,y=ode23(fun,0,0.5,1);注:注:也可以在也可以在 tspan 中指定对求解区间的分割,如:中指定对求解区间的分割,如:x,y=ode23(fun,0:0.1:0.5,1); %此时此时 x=0:0.1:0.5T,Y = solver(odefun,tspan,y0) 求初值问题求初值问题 的数值解,求解范的数值解,求解范围为围为 0,0.5222201( )dyyxxdxy 例例 4:数学建模专题一数学建模专题一 Matlab 基础

60、基础Matlab基础知识数值求解举例数值求解举例如果需求解的问题是如果需求解的问题是高阶高阶常微分方程,则需将其化为常微分方程,则需将其化为一阶常一阶常微分方程组微分方程组,此时需用,此时需用函数文件函数文件来定义该常微分方程组。来定义该常微分方程组。122212112101 00 7/()( ),( ),dxdtxdxdtxxxxx 令令 ,则原方程可化为,则原方程可化为12,dyxy xdt 求解求解 Ver der Pol 初值问题初值问题2221001 00 7()( ),( ),d ydyyydtdtyy 例例 5:数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础

61、知识数值求解举例数值求解举例l 先编写函数文件先编写函数文件 verderpol.mfunction xprime=verderpol(t,x)global mu;xprime=x(2); mu*(1-x(1)2)*x(2) - x(1);l 再编写脚本文件再编写脚本文件 vdpl.m,在命令窗口直接运行该文件。,在命令窗口直接运行该文件。 clear;global mu;mu=7;y0=1;0;t,x=ode45(verderpol,0,40,y0); plot(t,x(:,1),r-o);数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识内容提纲内容提纲1.1.基本用

62、法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.Matlab3.Matlab编程编程4.4.符号运算符号运算5.Matlab5.Matlab绘图绘图Matlab基础知识5. Matlab 绘图数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q plot命令命令Matlab 绘图绘图q subplot命令命令q plot3命令命令q mesh/meshc/meshz/surf命令命令q ezplot命令命令q ezmesh/ezsurf命令命令数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识Matlab 二维作图二维作图(plot

63、)u plot(x,y)q 基本形式基本形式 x=0:0.1:4*pi; y=cos(x); plot(x,y);例例:y=cos(x) 在在 0, 4*pi 上的图像上的图像数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识q 点和线的基本属性点和线的基本属性图形的属性图形的属性(plot)u plot(x,y,string)其中其中 string 是用是用 单引号单引号 括起来的字符串,用来指定图括起来的字符串,用来指定图形的属性形的属性(点、线的形状和颜色)(点、线的形状和颜色)属性可以全部指定,也属性可以全部指定,也可以只指定其中某几个可以只指定其中某几个排列顺序

64、任意排列顺序任意红色、虚线、红色、虚线、离散点用加号离散点用加号蓝色、点划线蓝色、点划线离散点为菱形离散点为菱形黑色、实线黑色、实线离散点用星号离散点用星号 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*-);数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识图形的基本属性图形的基本属性(plot)线型线型点标记点标记颜色颜色- - 实线实线: : 虚线虚线-.-. 点划线点划线- 间断线间断线. . 点点o o 小圆圈小圆圈x x 叉子符叉子符+

65、 + 加号加号* * 星号星号s s 方格方格d d 菱形菱形 朝上三角朝上三角v v 朝下三角朝下三角 朝右三角朝右三角 legend(cos(x); text(pi/2,cos(pi/2),leftarrowy=cos(x);xlable, ylabel, text 命令也可以指定文本的属性数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识其他相关命令其他相关命令(plot)u 保持当前窗口的图像hold on 或或 hold offu 新建绘图窗口figure(n)u 显示网格grid on 或或 grid off数学建模专题一数学建模专题一 Matlab 基础基础

66、Matlab基础知识同时绘制多个函数图像同时绘制多个函数图像(plot)u plot(x1,y1,s1,x2,y2,s2, . ,xn,yn,sn)属性选项属性选项可以省略可以省略等价于:等价于:hold onplot(x1,y1,s1)plot(x2,y2,s2).plot(xn,yn,sn)数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识其他相关命令其他相关命令(subplot)u 划分绘图区域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);例例:数学建模专题一数学建模专题一 Matlab 基础基础Matlab基础知识空间三维作图空间三维作图(

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!