版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、lxy, china jiliang universty数学建模专题一数学建模专题一matlab基础基础数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty引言引言q matlab: matrix laboratry 矩阵实验室矩阵实验室q 选择选择matlab的理由的理由 matlab功能强大。功能强大。 操作简单,容易上手。操作简单,容易上手。 matlab应用非常广泛。应用非常广泛。 易于扩展。易于扩展。数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty内容提纲内容提纲1.1
2、.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.matlab3.matlab编程编程4.4.符号运算符号运算5.matlab5.matlab绘图绘图lxy, china jiliang universty1. matlab基本用法数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty基本用法提纲基本用法提纲q matlab帮助系统q matlab变量q 变量的读取与存储q 矩阵数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtymatlab 的工作界面的工作界
3、面命令窗口命令窗口当前工当前工作目录作目录当前工当前工作空间作空间输入命令的输入命令的历史记录历史记录命令命令提示符提示符数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 矩阵的直接排列输入矩阵的直接排列输入例:例: 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;
4、 11 12 13 在原矩阵的下方加一行在原矩阵的下方加一行如何在原矩阵的右边添加一列?如何在原矩阵的右边添加一列?数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 单个元素的引用单个元素的引用例:例: a(2,3)矩阵元素的引用矩阵元素的引用q 多个元素的引用:多个元素的引用:冒号的特殊用法冒号的特殊用法利用小括弧和元素所在的位置(下标)利用小括弧和元素所在的位置(下标)x(i):向量:向量 x 中的第中的第 i 个元素个元素a(i, j):矩阵:矩阵 a 中的第中的第 i 行,第行,第 j 列元素列元素a:b:c产生一个由产生一
5、个由等差序列等差序列组成的向量;组成的向量; 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数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 多个元素的引用多个元素的引用(续)(续)例:例: x(1:3)矩阵元素的引用矩阵元素的引用 a(3,1:3)a(i:j, m:n) 表示由矩阵表示由矩阵 a 的第的第 i 到第到第 j 行和第行和第 m 到第到第 n列交叉线
6、上的元素组成的列交叉线上的元素组成的子矩阵子矩阵。可利用冒号提取矩阵可利用冒号提取矩阵 的整行或整列。的整行或整列。例:例: a(1, :) a(:, 1:2) a(:, :)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtymatlab帮助系统帮助系统q 联机帮助联机帮助help 显示指定命令的简短使用说明显示指定命令的简短使用说明例:例: help eig help help q 详细使用帮助详细使用帮助doc 以网页形式以网页形式显示指定命令的帮助页显示指定命令的帮助页例:例: doc eig q lookfor 按指定的关键词查
7、询与之相关的命令按指定的关键词查询与之相关的命令例:例: lookfor inverse 数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 变量命名原则变量命名原则matlab 变量变量u 以以字母开头字母开头u 后面可以跟后面可以跟 字母、数字字母、数字 和和 下划线下划线u 长度长度不超过不超过 63 个字符个字符(6.5 版本以前为版本以前为 19 个个)u 变量名变量名 区分字母的区分字母的 大小大小 写写q matlab 语句的通常形式语句的通常形式变量变量=表达式表达式表达式是用运算符将有关运算量连接起来的式子,表达式是
8、用运算符将有关运算量连接起来的式子,其结果被赋给赋值号其结果被赋给赋值号“=”左边的变量左边的变量数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 分号和续行符的作用分号和续行符的作用matlab 变量变量若不想在屏幕上输出结果,可以在语句最后加分号若不想在屏幕上输出结果,可以在语句最后加分号 如果语句很长,可用续行符如果语句很长,可用续行符 “”(三个点)续行(三个点)续行 续行符的前面最好留一个空格续行符的前面最好留一个空格例:例:数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang univ
9、erstyq 变量的查询变量的查询matlab 变量变量who 显示工作空间中的所有变量显示工作空间中的所有变量whos 查看工作空间中变量的详细属性查看工作空间中变量的详细属性数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 系统预定义变量系统预定义变量matlab 变量变量u pi 圆周率圆周率 u inf/inf 无穷大无穷大 u nan/nan not-a-number,一个不定值,如,一个不定值,如 0/0u eps 浮点运算相对精度浮点运算相对精度 q 特殊变量特殊变量 ansu i/j 虚部单位,即虚部单位,即1 应尽
10、量避免给系统预定义变量重新赋值!应尽量避免给系统预定义变量重新赋值!数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty变量的存储变量的存储q 存储当前工作空间中的变量存储当前工作空间中的变量u save 将所有变量存入文件将所有变量存入文件 matlab.matu save mydata 将所有变量存入指定文件将所有变量存入指定文件 mydata.matq 存储指定的变量存储指定的变量u save mydata.mat 将所有变量存入文件将所有变量存入文件 mydata.matsave 文件名文件名 变量名列表变量名列表例例: save
11、 mydata a x z 变量名列表中各变量之间用空格分隔。变量名列表中各变量之间用空格分隔。数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty变量的读取变量的读取q 将数据文件中的变量载入当前工作空间将数据文件中的变量载入当前工作空间u load mydata 载入数据文件中的所有变量载入数据文件中的所有变量u load mydata a x 从数据文件中提取指定变量从数据文件中提取指定变量q 清除当前工作空间中的变量清除当前工作空间中的变量u clear 清除当前工作空间中的所有变量清除当前工作空间中的所有变量u clear a
12、x 清除指定的变量清除指定的变量数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.matlab3.matlab编程编程4.4.符号运算符号运算5.matlab5.matlab绘图绘图6.6.其它补充知识其它补充知识lxy, china jiliang universty2. 向量与矩阵的生成和运算数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty向量与矩阵的生成与运算提纲向量与矩阵的生
13、成与运算提纲q 常用矩阵操作命令q 矩阵的基本运算q 矩阵的数组运算q 向量与矩阵的生成数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 向量与矩阵的生成向量与矩阵的生成向量与矩阵生成向量与矩阵生成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例例: 从矩阵中抽取行或列从矩阵中抽取行或列数学建模专题一数学建模专题一 ma
14、tlab 基础基础lxy, china jiliang universtyq 向量与矩阵的生成(续)向量与矩阵的生成(续)向量与矩阵生成向量与矩阵生成u 矩阵的生成矩阵的生成 直接输入直接输入: 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 基础基础lxy, china jiliang universty常见矩阵生成函数常见矩阵生成函数zeros(m,n)生成一个生成一个 m 行行 n 列的零矩阵,列的零矩
15、阵,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(x)若若 x 是矩阵,则是矩阵,则 diag(x) 为为 x 的主对角线向量的主对角线向量若若 x 是向量,是向量,diag(x) 产生以产生以 x 为主对角线的对角矩阵为主对角线的对角矩阵tril(a)提取一个矩阵的下三角部
16、分提取一个矩阵的下三角部分triu(a)提取一个矩阵的上三角部分提取一个矩阵的上三角部分rand(m,n)产生产生 01 间均匀分布的随机矩阵间均匀分布的随机矩阵 m=n 时简写为时简写为 rand(n)randn(m,n)产生均值为产生均值为0,方差为,方差为1的标准正态分布随机矩阵的标准正态分布随机矩阵m=n 时简写为时简写为 randn(n)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵操作矩阵操作q 提取矩阵的部分元素:提取矩阵的部分元素: 冒号运算符冒号运算符u a(:) a的所有元素的所有元素u a(:,:) 二维矩
17、阵二维矩阵a的所有元素的所有元素u a(:,k) a的第的第 k 列,列, a(k,:) a的第的第 k 行行 u a(k:m) a的第的第 k 到第到第 m 个元素个元素u a(:,k:m) a的第的第 k 到第到第 m 列组成的子矩阵列组成的子矩阵数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵操作矩阵操作q 矩阵的旋转矩阵的旋转u fliplr(a) 左右旋转左右旋转u flipud(a) 上下旋转上下旋转u rot90(a) 逆时针旋转逆时针旋转 90 度;度; rot90(a,k) 逆时针旋转逆时针旋转 k90 度度例例
18、: a=1 2 3;4 5 6 b=fliplr(a) c=flipud(a) d=rot90(a), e=rot90(a,-1)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵操作矩阵操作q 矩阵的转置与共轭转置矩阵的转置与共轭转置u 共轭转置共轭转置u . 转置,矩阵元素不取共轭转置,矩阵元素不取共轭例例: a=1 2;2i 3i b=a c=a.点与单引号之间不能有空格点与单引号之间不能有空格!数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵操作矩阵操作q 改变
19、矩阵的形状:改变矩阵的形状:reshape数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵操作矩阵操作q 查看矩阵的大小:查看矩阵的大小:sizeu size(a) 列出矩阵列出矩阵 a 的的行数和列数行数和列数u size(a,1) 返回矩阵返回矩阵 a 的的行数行数u size(a,2) 返回矩阵返回矩阵 a 的的列数列数例例: a=1 2 3; 4 5 6 size(a) size(a,1) size(a,2)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵基本
20、运算矩阵基本运算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 1; 3 4; c=a*b数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵基本运算矩阵基本运算q 矩阵的除法矩阵的除法:
21、/、 右除和左除右除和左除 若 a 可逆方阵,则ab a 的逆左乘的逆左乘 b = inv(a)*bb/a a 的逆右乘的逆右乘 b b*inv(a)q乘幂:a 是方阵,p 是正整数 ap 表示 a 的 p 次幂,即 p 个 a 相乘。 数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty矩阵的数组运算矩阵的数组运算q 数组运算:数组运算:对应元素进行运算点与算术运算符之间不能有空格!u 数组运算包括:数组运算包括:点乘点乘、点除点除、点幂点幂u 相应的数组运算符为:相应的数组运算符为: “.* ” , “./ ” , “. ” 和和“
22、. ”参与运算的对象必须具有相同的形状!参与运算的对象必须具有相同的形状!例例: 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 基础基础lxy, china jiliang universtymatlab中常见数学函数中常见数学函数sin、cos、tan、cot、sec、csc、asin、acos、atan、acot、asec、acsc、exp、log、log2、log10、sqrtabs、conj、real、imag、signfix、floor、ceil、round、mod
23、、remmax、min、sum、mean、sort、fftnorm、rank、det、inv、eig、lu、qr、svd数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.matlab3.matlab编程编程4.4.符号运算符号运算5.matlab5.matlab绘图绘图lxy, china jiliang universty3. matlab编程入门数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang un
24、iverstymatlab编程入门提纲编程入门提纲q 关系运算符q 逻辑运算符q 程序结构控制语句q 函数m文件的编写q m文件数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtymatlab 编程入门编程入门q matlab 编程简介u matlab 作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和 c、fortran 等高级语言一样进行程序设计。u 在 matlab 程序设计中,要充分利用 matlab 数据结构的特点,提高编程效率。数学建模专题一数学建模专题一 mat
25、lab 基础基础lxy, china jiliang universtyq 用 matlab 语言编写的程序称为 m 文件, 文 件以 .m为扩展名。q m 文件根据调用方式的不同可以分为两类:u script:脚本文件/命令文件 u function:函数文件 m 文件文件数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyu 在命令窗口中输入 f2cs,即可执行该 m 文件。5(32)9cf例:编写一个脚本文件将华氏温度转化为摄氏温度脚本文件举例脚本文件举例clear; % 清除当前工作空间中的变量f=input(please inp
26、ut fahrenheit temperature:);c=5*(f-32)/9;fprintf(the centigrade temperature is %gn,c);u 新建一个 m 文件 f2cs.m,内容如下:数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty关系运算关系运算小于小于大于大于=大于等于大于等于=等于等于=不等于不等于l 比较大小,如果结论是 真真 则返回 1 ,否则返回 0l 关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一
27、样。q 关系关系运算符运算符数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty例:例:关系运算举例关系运算举例 2+2=4 23 a=1 3 5; 2 0 6; b=3 1 0; 2 4 6; a=b x=5 0; 4 2; x1 eps=eps/2; num=num+1;end数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyu break 和 continuel break 语句用于终止循环的执行,即跳出最内层循环 l continue 语句用于结束本次循环,进行下一次循环
28、l break 和 continue 一般与 if 语句配合使用其它流控制语句其它流控制语句u returnl return 语句用于退出正在运行的脚本或函数,通常用在函数文件中。数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyfunction 输出形参列表输出形参列表=函数名函数名(输入形参列表输入形参列表)% 注释说明部分注释说明部分(可选可选)函数体语句函数体语句(必须必须)u 第一行为第一行为引导行引导行,表示该,表示该 m文件是函数文件文件是函数文件u 函数名的命名规则与变量名相同函数名的命名规则与变量名相同 ( 必须以字母
29、开头必须以字母开头 )u 当输出行参多于一个时,用当输出行参多于一个时,用方括号方括号括起来括起来u 函数必须是一个函数必须是一个单独的单独的 m文件文件u 函数函数文件名必须与函数名一致文件名必须与函数名一致u 以以百分号百分号开始的语句为开始的语句为注释语句注释语句函数函数m文件的编写与调用文件的编写与调用q 函数文件由函数文件由 function 语句引导语句引导数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyfunction y = myfliplr(x)% returns x with row preserved and c
30、olumns% 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.m数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty内容提纲内容提纲1.1.基本用法基本用法2.2.向量与矩阵的生成和运算向量与矩阵的生成和运算3.matlab3.matlab编程编程4.4.符号运算符号运算5.matla
31、b5.matlab绘图绘图lxy, china jiliang universty4. matlab符号运算数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty符号运算提纲符号运算提纲q 因式分解、展开、合并、简化及通分等q 计算极限q 计算导数q 计算积分q 符号求和q 代数方程和微分方程求解q 符号对象的建立数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtymatlab 符号运算介绍符号运算介绍q matlab 符号运算是通过符号数学工具箱(symbolic math tool
32、box)来实现的。matlab 符号数学工具箱是建立在功能强大的 maple 软件的基础上的,当 matlab 进行符号运算时,它就请求 maple 软件去计算并将结果返回给 matlab。 q matlab 的符号数学工具箱可以完成几乎所有得符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtymatlab 符号运算举例符号运算举例u 求一元二次方程 ax2 + bx + c = 0 的根 solv
33、e(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 基础基础lxy, china jiliang universtyu sym 函数用来建立单个符号变量,一般调用格式为:q 符号对象的建立:sym 和 syms符号对象的建立符号对象的建立例: a=sym(a) 符号变量 = sym(a)参数 a 可以是一个数或数值矩阵,也可以是字符串a 是符号变量b 是符号常量 b=
34、sym(1/3)c 是符号矩阵 c=sym(1 ab; e d)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 符号对象的建立:sym 和 syms符号对象的建立符号对象的建立u syms 命令用来建立多个符号变量,一般调用格式为:syms 符号变量符号变量1 符号变量符号变量2 . 符号变量符号变量n 例: syms a b c a=sym(a); b=sym(b); c=sym(c);数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 符号表达式的建立:例:建立符号表
35、达式通常有以下2种方法:(1) 用 sym 函数直接建立符号表达式。(2) 使用已经定义的符号变量组成符号表达式。 y=sym(sin(x)+cos(x) x=sym(x); y=sin(x)+cos(x)符号表达式的建立符号表达式的建立数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty符号表达式的替换符号表达式的替换subs(f,x,a) 用用 a 替换字符函数替换字符函数 f 中的字符变量中的字符变量 x a 是可以是是可以是 数数/数值变量数值变量/表达式表达式 或或 字符变量字符变量/表达式表达式q 用给定的数据替换符号表达式中
36、的指定的符号变量数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtysubs 举例举例 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)数学建
37、模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty六类常见符号运算六类常见符号运算q 因式分解、展开、合并、简化及通分等q 计算极限q 计算导数q 计算积分q 符号求和q 代数方程和微分方程求解数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty因式分解、展开、合并、简化等u 因式分解factor(f)u 函数展开expand(f)u 合并同类项collect(f,v): 按指定变量按指定变量 v 进行合并进行合并collect(f): 按按默认变量默认变量进行合并进行合并数学建模专题一
38、数学建模专题一 matlab 基础基础lxy, china jiliang universty计算极限计算极限limit(f,x,a): 计算计算limit(f,a): 当当默认变量默认变量趋向于趋向于 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-
39、x/n)n,n,inf)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty计算导数计算导数g=diff(f,v):求符号表达式求符号表达式 f 关于关于 v 的导数的导数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 基础基础lxy, china jiliang universty计算积分计算积分int
40、(f,v,a,b): 计算定积分计算定积分int(f,a,b): 计算关于计算关于默认变量默认变量的定积分的定积分int(f,v): 计算不定积分计算不定积分int(f): 计算关于计算关于默认变量默认变量的不定积分的不定积分 syms x; f=(x2+1)/(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 基础基础lxy, china jiliang universtyu 梯形法:trapz
41、trapz(x,y)x 为分割点(节点)组成的向量,y 为被积函数在节点上的函数值组成的向量。22)(110nnbayyyynabdxxf,x10nxxx01y (),(),()nf xf xf xq matlab 近似计算定积分的相关函数matlab 数值积分函数数值积分函数数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyu 例:用梯形法计算下面定积分 ( 取 n=100) 1021xdx解: x=0:1/100:1; y=1./(1+x.2); trapz(x, y)trapz(x,1./(1+x.2)trapz 举例举例数学建模
42、专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyquad(f,a,b,tol)f = f(x) 为被积函数,a,b 为积分区间,tol 为计算精度将自变量看成是将自变量看成是向量向量badxxf)(u 抛物线法:quadl 不用自己分割积分区间l 可以指定计算精度,若不指定,缺省精度是 10-6l 精度越高,函数运行的时间越长l 此处的函数 f 是数值形式,应该使用数组运算,即 点运算:.*,./ ,. ,. 注:抛物线法抛物线法数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty102
43、1xdx解:解: 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 基础基础lxy, china jiliang universtyq 抛物线法计算二重积分: dblquaddblquad(f,a,b,c,d,tol)u tol 为计算精度,若不指定,则缺省精度为 10-6 b
44、adcdxdyyxf),(u f(x,y) 可以由 inline 定义,或通过一个函数句柄传递u a,b 是第一积分变量的积分区间,c,d 是第二积分变量 的积分区间按字母顺序,大写字母排在小写字母的前面二重积分的计算二重积分的计算数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty21201(43)ixyydxdy f=inline(4*x*y+3*y2); i=dblquad(f, -1,1,0,2)u f(x,y) 中关于第一自变量的运算是数组运算, 即把 x 看成是向量,y 看成是标量。 也可以全部采用数组运算例2:计算二重积分
45、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 基础基础lxy, china jiliang universty例:计算二重积分 20112)34(dxdyxxy dblquad(x,y)4*x*y+3*x.2 , -1,1, 0, 2)指定 x、y 分别是第一第一和第二第二积分变量 dblquad(inline(4*x*y+3*x.2), -1,1, 0, 2)q 被积函数
46、 f (x,y) 的另一种定义方法:匿名函数 dblquad(y,x)4*x*y+3*x.2 , -1,1, 0, 2)下面的命令运行结果和上面的一样吗?dblquad 举例举例数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty221dxex 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:用 matlab 函数近似计算积分数值实验数值实验数学建模专题
47、一数学建模专题一 matlab 基础基础lxy, china jiliang universty20112)(dyyxdxl 抛物线法: dblquad(inline(x+y2),0,2,-1,1)l 符号积分法: f=int(x+y2,y,-1,1); int(f,0,2)数值实验数值实验例 2:用 matlab 函数近似计算二重积分数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty符号求和符号求和 syms n; f=1/n2; s=symsum(f,n,1,inf) s100=symsum(f,n,1,100)symsum(f,v
48、,a,b): 求和求和symsum(f,a,b): 关于关于默认变量默认变量求和求和( )bv af v 例:计算级数例:计算级数 及其前及其前100项的部分和项的部分和211nsn 例:计算函数级数例:计算函数级数21nxsn syms n x; f=x/n2; s=symsum(f,n,1,inf)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty代数方程和微分方程求解代数方程和微分方程求解u 代数方程求解solve(f,v):求方程关于指定自变量的解,求方程关于指定自变量的解,f 可以是可以是用字符串表示的方程用字符串表示的方程、
49、符号表达式符号表达式或或符号方程符号方程;u 微分方程求解数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq 自牛顿发明微积分以来,微分方程在描述事物运自牛顿发明微积分以来,微分方程在描述事物运动规律上已发挥了重要的作用。实际应用问题通过动规律上已发挥了重要的作用。实际应用问题通过数学建模所得到的方程,绝大多数是微分方程。数学建模所得到的方程,绝大多数是微分方程。q 由于实际应用的需要,人们必须求解微分方程。由于实际应用的需要,人们必须求解微分方程。然而能够求得解析解的微分方程十分有限,绝大多然而能够求得解析解的微分方程十分有限,绝大
50、多数微分方程需要利用数值方法来近似求解。数微分方程需要利用数值方法来近似求解。微分方程求解微分方程求解数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty符号解法符号解法dsolve 求解析解求解析解q dsolve 的使用的使用y=dsolve(eq1,eq2, . ,cond1,cond2, . ,v)其中其中 y 为输出,为输出, eq1、eq2、.为微分方程,为微分方程,cond1、cond2、.为初值条件,为初值条件,v 为自变量。为自变量。例例 1:求微分方程求微分方程 的通解,并验证。的通解,并验证。22xdyxyxedx
51、y=dsolve(dy+2*x*y=x*exp(-x2),x) syms x; diff(y)+2*x*y - x*exp(-x2)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtydsolve 的使用的使用q 几点说明几点说明l 如果省略初值条件,则表示求通解;如果省略初值条件,则表示求通解;l 如果省略自变量,则默认自变量为如果省略自变量,则默认自变量为 t dsolve(dy=2*x,x); dy/dx = 2xdsolve(dy=2*x); dy/dt = 2xl 微分方程中用微分方程中用 d 表示对表示对 自变量自变量 的导数
52、,如:的导数,如:dy y; d2y y; d3y y数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtydsolve 举例举例例例 2:求微分方程求微分方程 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。0 xxyye y=dsolve(x*dy+y-exp(x)=0,y(1)=2*exp(1),x) ezplot(y);12( )ye 数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtydsolve 举例举例例例3:求微分方程组求微分方程组 在
53、初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。530tdxxyedtdyxydt x,y=dsolve(dx+5*x+y=exp(t),dy-x-3*y=0, . x(0)=1, y(0)=0, t)ezplot(x,y,0,1.3);0010|ttxy 数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyq euler折线法折线法数值求解:数值求解:euler 折线法折线法q runge-kutta(龙格(龙格-库塔)方法库塔)方法q 利用利用matlab函数求数值解函数求数值解数学建模专题一数学建模专
54、题一 matlab 基础基础lxy, china jiliang universty初值问题的初值问题的euler折线法折线法q 具体步骤:具体步骤:等距剖分:等距剖分:0121nnaxxxxxb 步长:步长:1 0 1 21() /, , ,kkhxxknnba u 分割求解区间分割求解区间u 差商代替微商差商代替微商1()()kkky xy xdydxhx 1 ()()()kkky xy xh yx 得方程组:得方程组:0011 ()(,)kkkkkkyy xyyh f xyxxh 分割求解区间,差商代替微商,解代数方程分割求解区间,差商代替微商,解代数方程 为分割点为分割点 0nkkx
55、k = 0, 1, 2, ., n-1yk 是是 y (xk) 的近似的近似数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyeuler 折线法举例折线法举例例:例:用用 euler 法解初值问题法解初值问题22 0 201 , ( )dyxydxyxy 取步长取步长 h = (2 - 0)/n = 2/n,得差分方程,得差分方程00110 1 2 ,(,)(/)kkkkkkkkkkxyyyh f xyyh yxyxxh 当当 h=0.4,即,即 n=5 时,时,matlab 源程序见源程序见 fulua.m解:解:数学建模专题一数学建
56、模专题一 matlab 基础基础lxy, china jiliang universtyeuler 折线法源程序折线法源程序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=szj;x,y;endszjplot(szj(:,1),szj(:,2),or-)数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty euler折线法举例
57、(续)折线法举例(续)解析解:解析解:1 3352233/xyex 解析解解析解近似解近似解数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyrunge-kutta 方法方法q 为了减小误差,可采用以下方法:为了减小误差,可采用以下方法:u 让步长让步长 h 取得更小一些;取得更小一些;u 改用具有较高精度的数值方法:改用具有较高精度的数值方法:q 龙格龙格-库塔方法库塔方法runge-kutta (龙格龙格-库塔库塔) 方法方法u 是是一类一类求解常微分方程的数值方法求解常微分方程的数值方法u 有多种不同的迭代格式有多种不同的迭代格式
58、数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyrunge-kutta 方法方法q 用得较多的是用得较多的是 四阶四阶r-k方法方法00111234 (22)/6(),kkkkyy xxxhyyh llll 12132432222(,)(/ ,/ )(/ ,/ )(,)kkkkkkkklf xylf xhyhllf xhyhllf xh yhl 其中其中数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universty四阶四阶 r-k 方法方法源程序源程序clear;f=sym(y+2*x/y
59、2);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), dg-)数学建模专题一数学建模专题一 matlab 基础基础lxy, c
60、hina jiliang universtyrunge-kutta 方法方法数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtyeuler 法与法与 r-k法误差比较法误差比较数学建模专题一数学建模专题一 matlab 基础基础lxy, china jiliang universtymatlab函数数值求解函数数值求解t,y = solver(odefun,tspan,y0)其中其中 y0 为初值条件,为初值条件,tspan为求解区间;为求解区间;matlab在数值求解在数值求解时时自动对求解区间进行分割自动对求解区间进行分割,t (向量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业管理服务咨询服务简单合同
- 冲孔灌注桩施工劳务分包合同
- 三方合同补充协议书
- 资产买卖合同
- 给水、污水泵设备安装合同
- 地毯购销合同范本地毯购销合同
- 在线教育系统共建共享合同
- 产品销售合同范本集锦
- 医疗器械销售合同简易模板
- 社区团购平台搭建及运营合同
- 2024年潍坊工程职业学院单招职业适应性测试题库完美版
- GB/T 44823-2024绿色矿山评价通则
- 人教版英语高考试卷与参考答案(2024年)
- 红楼梦服饰文化
- 浙江省中小学心理健康教育课程标准
- 《共情的力量》课件
- 2022年中国电信维护岗位认证动力专业考试题库大全-上(单选、多选题)
- 水平二(四年级第一学期)体育《小足球(18课时)》大单元教学计划
- 《关于时间管理》课件
- 医药高等数学智慧树知到课后章节答案2023年下浙江中医药大学
- 城市道路智慧路灯项目 投标方案(技术标)
评论
0/150
提交评论