版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB在数学建模中的应用 上海电机学院 武文佳 2019.7.8全国大学生数学建模竞赛(CUMCM)China Undergraduates Mathematical Contest in Modeling 1992年由中国工业与应用数学学会(CSIAM)组织第一次竞赛 1994年起由教育部高教司和CSIAM共同举办,每年一次(9月) 2019 年,来自全国33个省/市/自治区(包括香港和澳门特区)及新加坡的1284所院校、21219个队(其中本科组17741队、专科组3478队)、63600多名大学生报名参加本项竞赛。 网址: 奖励:证书 (“一
2、次参赛,终身受益”) 等级:全国一等奖3%、二等奖 7%;赛区一、二等奖1/3 2019年高教社杯全国大学生数学建模竞赛时间: 2019年9月13日上午8:00竞赛内容与形式内容 赛题:工程技术、管理科学等科学领域的实际问题 答卷:一篇包含模型假设、建立、求解、计算方法设计和计算机实现、结果分析和检验、模型改进等方面的论文形式 3名大学生组队,在3天内完成“队长” 可使用任何材料(图书、计算机、软件、互联网等),但不得与队外任何人讨论(包括上网讨论)宗旨创新意识 团队精神 重在参与 公平竞争标准假设的合理性,建模的创造性,结果的正确性,表述的清晰性数学建模过程现实对象的信息数学模型的解答现实对
3、象的解答数学模型表述(归纳)求解(演绎)解释验证现实对象与数学模型的关系 数学建模步骤模型准备模型假设模型建立模型求解模型分析模型检验模型应用1)模型准备: 了解问题的实际背景,明确建模目的,掌握对象的各种信息如统计数据等,弄清实际对象的特征。 -查找资料,读懂题意建模步骤2)模型假设:根据实际对象的特征和建模目的,对问题进行必要地合理地简化。不同的假设会得到不同的模型。过度的简化而得到模型可能无实用价值舍不得简化又可能导致得到一个无法求解的模型或模型的解非常复杂,以致无法应用。注意:对于一个假设,最重要的是它是否符合实际情况,而不是为了解决问题的方便。 有些假设在建模过程中才会发现。因此在建
4、模是要注意调整假设。3)模型建立: 分清变量类型,恰当使用数学工具;抓住问题的本质,简化变量之间的关系;要有严密的数学推理,模型本身要正确;要有足够的精确度。4)模型求解:选择恰当的方法求解所建立的数学模型,包括画图等。编程求解:MATLAB,Lingo/Lindo,Mathematica等建模步骤6)模型检验: 把模型分析的结果“翻译”回到实际对象中,用实际现象、数据等检验模型的合理性和适应性。如果模型不实用,必须从模型假设那里重新开始,直到得到可用模型。7)模型应用和推广:应用中可能发现新问题,需继续完善;所建立的模型稍加处理可推广到其他领域。5)模型分析:结果分析、数据分析。变量之间的依
5、赖关系或稳定性态;数学预测;最优决策控制。建模步骤从论文评阅看学生参加竞赛中的问题 吃透题意方面的不足; 就事论事,形成数学模型的意识和能力欠缺; 不管具体条件,套用现成的方法,导致错误; 对结果的分析不够,怎样符合实际考虑不周; 写作方面的问题(摘要、简明、优缺点、参考文献)。要想在数学建模竞赛中取得好成绩,要注意 1. 建立好的数学模型,不在于用了什么高深的方 法,而要能有效、简便、恰当的解决实际问题。2. 好的求解方法:算法和编程实现。假期要注意多看优秀论文,熟悉建模常用算法并编程训练。3. 高质量的论文:描述清晰,让评委知道你如何分析问题,数学模型是什么,用了什么方法,最后结论是什么。
6、-把问题描述清楚。注意事项: 1.充分的准备和训练:通过培训和自学,熟悉常见模型和方法,多积累建模案例。 -量变到质变。 2.重视建模论文的排版和技巧:建模论文是最后决定是否获奖的关键,注意固定的规范,平时多看建模论文。软件准备:Office,Mathtype,MATLAB3.项目管理和时间管理:制定好三天时间的规划,队长必须具有好的协调组织和进程控制能力。一旦选题,尽量不要中途换题目。4.团队合作能力:一个人再厉害,在三天内也无法做出很好的建模论文。切勿自己只管自己那部分,要大家一起讨论。队长-相当于计算机中的CPU,一定要给力。互相讨论,各有侧重,互相帮助。5.要有勇争第一的意识和勇气 数
7、学建模对队员的意志力要求比较高。 信心,相信自己能做好。 遇到困难不轻言放弃,很多时候,只要再坚持一下,就可以克服一些难题。注意事项: 13数学建模软件 MATLAB MATLAB 基础14主要内容 Matlab 介绍 Matlab 的基本用法 15培训要求:听课+课后作业将所有文件作为附件,以邮件形式发给 主题为:数学建模-三位同学姓名两字段之间用英文状态下的减号连接每个 M 文件的第一行添加一条注解语句:% 数学建模-三位同学姓名-作业题号交作业截止日期:2019年7月15日 课后作业要求16数学建模软件 程序设计语言:BASIC,Pascal,FORTRAN,C
8、,. 数值计算软件: Matlab,Scilab,Octave,. 符号计算软件:Mathematica,Maple,. 交互式数学软件:MathCAD,Calcwin,. 统计软件:SAS,SPSS,Minitab,. 数学规划软件:Lingo,Lindo,. 工程计算软件:Ansys,Fluent,Phoenics,. 其它:几何画板,MathLab, . 数学相关软件17Matlab 介绍 在欧美各高等院校,Matlab 是线性代数、数值分析、数理统计、自动控制、数字信号处理、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。 Matlab是一种广泛应用于工
9、程计算及数值分析领域的新型高级语言,自 1984 年推向市场以来,经过多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matrix Laboratory 矩阵实验室Matlab18Matlab 的发展 Matlab 的发展 1980年,Moler 教授用 Fortran 语言编写了集命令翻译、 科学计算于一身的一套交互式软件系统。 1984年,Moler 等成立了 The MathWorks 的公司,用 C 语言完全改写 Matlab,并推出第一个商业版。 到九十年代,在国际上 30 几个数学类科技应用软件中, Matlab 在数值计算方面独占鳌头。 目前,Matlab 已成为世
10、界顶尖的数学应用软件就影响而言, 至今仍然没有一个别的计算软件可与 Matlab 匹敌。19 Matlab 的发行版本1984年,Matlab 1.0 (DOS版,182K,20多个函数)1992年,Matlab 4.0 (93年推出Windows版,加入 simulink)1994年,Matlab 4.2(得到广泛重视和应用)1999年,Matlab 5.3(真正实现32位运算)2019年,Matlab 6.5(采用JIT加速器)2019年,Matlab 7.0自2019年起,Matlab每年更新两次目前最新版为 R2019a (2019年3月发布)Matlab 的发展20Matlab 的功
11、能与特点 Matlab 具有很强的数值计算功能 Matlab 以矩阵作为数据操作的基本单位, 但无需预先指定矩阵维数(动态定维) 按照 IEEE 的数值计算标准进行计算 提供十分丰富的数值计算函数,方便计算,提高效率 Matlab 命令与数学中的符号、公式非常接近, 可读性强,容易掌握 Matlab 是一个交互式软件系统 输入一条命令,立即就可以得到该命令的运行结果21Matlab 的特点与功能 Matlab 的符号计算功能Matlab 可以进行一些常见的符号计算 Matlab 的编程功能Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,且简单易学、编程效率高
12、 Matlab 的绘图功能Matlab提供丰富的绘图命令,很方便实现数据的可视化22 Matlab 丰富的工具箱(toolbox)Matlab 的特点与功能根据专门领域中的特殊需要而设计的各种可选工具箱 Matlab 的 Simulink 动态仿真集成环境提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能Symbolic Math PDEOptimizationSignal processImage ProcessStatisticsControl SystemSystem Identification 23 获取 Matlab 软件
13、Matlab 的安装 插入光盘,自动运行; 或点击安装程序 setup.exe24Matlab 的基本用法 Matlab 的启动 使用 Windows “开始” 菜单 运行 Matlab 系统启动程序 matlab 双击 Matlab 快捷图标 Matlab 的退出 在 Matlab 主窗口 File 菜单中选择 Exit Matlab 在 Matlab 命令窗口输入 exit 或 quit 单击 Matlab 主窗口的“关闭”按钮25Matlab 的工作界面当前工作空间当前目录中的文件命令窗口命令历史记录命令行提示符当前目录直观认识Matlab-基本数学运算在MATLAB下进行基本数学运算,
14、只需将运算式直接打在提示号 后面,并按Enter键。MATLAB将计算 的结果以ans显示。【例】求 的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容 (12+2*(7-4)/32 (2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans = 2 我们也可给运算式的结果设定一个变量x: x = (5*2+1.3-0.8)*102/25 x = 42 变量x的值可以在下个语句中调用: y= 2*x+1y = 85 MATLAB提供基本的算术运算有: 加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (),
15、范例为:5+3, 5-3, 5*3, 5/3, 53MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续), 例如: 1*2+3*4+5*6+7*8+9*10+11*12+.13*14+15*16ans =744MATLAB常用数学函数-三角函数和双曲函数名称含义名称含义名称含义sin正弦csc余割atanh反双曲正切cos余弦asec反正割acoth反双曲余切tan正切acsc反余割sech双曲正割cot余切sinh双曲正弦csch双曲余割asin反正弦cosh双曲余弦asech反双曲正割aco
16、s反余弦tanh双曲正切acsch反双曲余割atan反正切coth双曲余切atan2四象限反正切acot反余切asinh反双曲正弦sec正割acosh反双曲余弦指数函数名称含义名称含义名称含义expE为底的指数log1010为底的对数pow22的幂log自然对数log22为底的对数sqrt平方根 复数函数名称含义名称含义名称含义abs绝对值conj复数共轭real复数实部angle相角imag复数虚部 其他函数名称含义名称含义min最小值max最大值mean平均值median中位数std标准差diff相邻元素的差sort排序length个数norm欧氏(Euclidean)长度sum总和pro
17、d总乘积dot内积cumsum累计元素总和cumprod累计元素总乘积cross外积31 Matlab 变量的命名规则一.Matlab 变量 以字母开头 后面可以跟 字母、数字 和 下划线 长度一般不要超过 63 个字符 字母区分 大小 写 Matlab 语句的通常形式变量 = 表达式 表达式是用运算符将有关运算量连接起来的式子 计算表达式的结果,并赋给赋值号“=”左边的变量Matlab 命令的执行:回车 输出格式Matlab 的输出 Matlab 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量 “ans” Matlab 中数的输出
18、格式可以通过 format 命令指定format 只改变变量的输出格式,但不会影响变量的值!各种 format 格式格式解释例format短格式(缺省显示格式),同short3.1416format short短格式(缺省显示格式),只显示5位3.1416format long长格式,双精度数15位,单精度数7位3.14159265358979format short e短格式e方式(科学计数格式)3.1416e+000format long e长格式e方式3.141592653589793e+000format short g短格式g方式3.1416format long g长格式g方式3.
19、14159265358979format compact压缩格式format loose自由格式format + / format bank / format rat / format hex (详情查看联机帮助)变量的存储 存储当前工作空间中的变量 save 将所有变量存入文件 matlab.mat save mydata 将所有变量存入指定文件 mydata.mat 存储指定的变量 save mydata.mat 将所有变量存入文件 mydata.matsave 文件名 变量名列表例: save mydata A x z 变量名列表中各变量之间用空格分隔变量的读取 将数据文件中的变量载入当
20、前工作空间 load mydata 载入数据文件中的所有变量 load mydata A x 从数据文件中提取指定变量 清除当前工作空间中的变量 clear 清除当前工作空间中的所有变量 clear A x 清除指定的变量36 查看已定义的变量:who、whos变量的查看 清除变量:clearwho显示当前工作空间中的所有变量whos显示所有变量的详细属性clear清除工作空间中的所有变量clear all清除所有变量,包括全局变量、函数链接等clear 变量名清除指定的变量37 特殊变量 ans注:应尽量避免给系统预定义变量重新赋值! 系统预定义的变量系统预定义变量pi圆周率 ,其值为 im
21、ag(log(-1)inf, Inf无穷大NaN, nanNot-a-Number,一个不定值,如 0/0eps浮点运算相对精度i, j虚部单位38Matlab 数值运算 默认是双精度实数,可用浮点数或科学计数法表示例:3, 0.4, 1.603e-12 浮点运算的相对误差为 eps,大约为 2.210-16 浮点数表示范围为:10-308 10308 复数的输入例:z=3+4i (4 与 i 之间不能有空格) Matlab 中的数与算术表达式注:复数作为矩阵元素输入时,加号两边不要加空格!39 命令分隔符 算术运算 Matlab 数值运算+ - * 加,减,乘,幂/ 右除,左除 一行可以写多
22、个语句,语句间用逗号或分号隔开 若不想在屏幕上输出结果,可以在语句最后加分号 如果语句很长,可用续行符 “”(三个点)续行 续行符的前面最好留一个空格 分号的作用 续行符 分号和续行符的作用Matlab 数值运算 若不想在屏幕上输出结果,可以在语句最后加分号 如果语句很长,可用续行符 “”(三个点)续行 续行符的前面最好留一个空格例:41几个小技巧 Matlab 的命令记忆功能:上下箭头键 命令补全功能: Tab 键 用 Esc 键 删除命令行 命令 home、clc可以先输入命令的前几个字符,再按上下键缩小搜索范围42Matlab帮助系统 如何寻找帮助help 显示指定命令的简短使用说明do
23、c已网页形式显示完整的使用帮助help sizedoc size例: 查找命令lookfor 按指定的关键词查询与之相关的命令which显示命令或函数所在的目录 其它相关命令cd、dir、more更多 Matlab 命令,参见课程主页43 定义矩阵:直接输入法 矩阵用方括号 “ ” 括起 矩阵同一行中的元素之间用 空格 或 逗号 分隔 矩阵行与行之间用 分号 分开,也可以用 回车 代替A=1 2 3; 4 5 6; 7 8 9二.矩阵的输入 Matlab 的操作对象 矩阵例:44 矩阵元素可以是任何数值表达式例:x=-1.3, sqrt(3), (1+2+3)*4/5矩阵元素赋值 矩阵元素的单
24、独赋值例:x(2)=6.8例:x(5)=abs(x(6) ?动态定维功能:Matlab 会自动扩展向量的长度, 并将没有赋值的部分置零 例:x(5)=abs(x(1)45 大矩阵可以把小矩阵作为其元素矩阵元素赋值例: A=A ; 11 12 13在原矩阵的下方加一行思考:如何在原矩阵的右边添加一列? 空矩阵例: B=46 单个元素的引用例: x=A(2,3)+A(1,2)矩阵元素的引用x(i) 向量 x 中的第 i 个元素A(i,j)矩阵 A 中的第 i 行,第 j 列元素 多个元素的引用:冒号的特殊用法a:b:c 产生一个由等差序列组成的向量 a 是首项,b 是公差,c 确定最后一项 若 b
25、 = 1,则 b 和其前面的冒号可以省略例:x=1:2:5 y=1:2:6例:x=2:1:5 y=2:5例:x=3:1:047例:y=x(1:3)矩阵元素的引用 多个元素的引用(续)x(i:j) 向量 x 中的第 i 到第 j 个元素A(i:j,m:n)由第 i 至 j 行和第 m 至 n 列组成的子矩阵例:B=A(2:3,1:3) y=A(1,1:3)x(i:end) 向量 x 中的第 i 个到最后一个元素A(i:end,m:n)A(i:j,m:end)第 i 行到最后一行与 m 至 n 列(子矩阵)第 m 列到最后一列与 i 至 j 行(子矩阵)48矩阵元素的引用 多个元素的引用(续)A(
26、:,k) 矩阵的第 k 列A(i,:)矩阵的第 i 行A(i:j,:)矩阵的第 i 行到第 j 行A(:,m:n)矩阵的第 m 行到第 n 列A(:,:)整个矩阵x(:)取向量的所有元素,并按列向量方式输出A(:)将矩阵的所有元素按列排成一个列向量49矩阵元素的引用 多个元素的引用:不连续元素的选取A(i1, i2, ., ip,j1, j2, ., jq) 矩阵第 i1, i2, ., ip 行和第 j1, j2, ., jq 列组成的子矩阵例:A(1,3,4, 2,3)例:A(1,4,3, 2,3) 删除指定的行或列A(i,:)= 删除第 i 行A(:,j)=删除第 j 列50特殊矩阵 M
27、atlab 提供了一些函数,用于生成一些常见的特殊矩阵例:A=magic(3)B=ones(4) 特殊矩阵的生成A=magic(5)a1=diag(A)a2=diag(A,1)a3=diag(A,-2)a=1,2,3,4A1=diag(a)A2=diag(a,1)A3=diag(a,-2)注意 diag 的用法51常见矩阵生成函数zeros(m,n)zeros(n)生成一个 m 行 n 列的零矩阵m=n 时可简写为 zeros(n)ones(m,n)ones(n)生成一个 m 行 n 列的元素全为 1 的矩阵 m=n 时可简写为 ones(n)eye(m,n)eye(n)生成一个主对角线全为
28、1 的 m 行 n 列矩阵m=n 时可简写为 eye(n),即为 n 维单位矩阵diag(X)diag(X,k)若 X 是矩阵,则 diag(X) 为 X 的主对角线向量若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵tril(A)提取一个矩阵的下三角部分triu(A)提取一个矩阵的上三角部分rand(m,n)rand(n)产生 01 间均匀分布的随机矩阵 m=n 时简写为 rand(n)randn(m,n)randn(n)产生均值为0,方差为1的标准正态分布随机矩阵m=n 时简写为 randn(n)其它特殊矩阵生成函数:magic、hilb、pascal 等52矩阵基本运算
29、矩阵的加减:对应分量进行运算 矩阵的普通乘法参与加减运算的矩阵具有 相同的维数!A=1,2; 3,4; B=5,6; 7,8C=A+B D=B-A例:参与运算的矩阵须满足线性代数中矩阵相乘的原则!A=1,2,3; 4,5,6; B= 2,1; 4,3C=B*A例:53矩阵基本运算 矩阵的除法:若 A 可逆方阵,则AB A 的逆左乘 B inv(A)*BB/A A 的逆右乘 B B*inv(A) 矩阵的幂:若 A 是方阵,p 是正整数,则Ap = A 的 p 次幂,即 p 个 A 相乘 右除左除 矩阵的转置与共轭转置A共轭转置A.普通转置,不取共轭,点与单引号之间不能有空格A = 1, 2-3i
30、; 3, 1+4iB = AC = A.例:54翻转与旋转 矩阵的翻转与旋转例:注意矩阵旋转与转置的区别!fliplr(A)左右翻转flipud(A)上下翻转rot90(A)rot90(A,k)逆时针旋转 90 度逆时针旋转 k90 度A = 1 2 3;4 5 6B = fliplr(A)C = flipud(A)D = rot90(A)E = rot90(A,-1)55改变矩阵的形状 改变矩阵的形状:reshape(A,m,n)将矩阵元素按 列方向 进行重新排列成一个 mn 的新矩阵新矩阵的元素个数必须与原矩阵元素个数相等!A=1,2,3; 4,5,6; 7,8,9; 10,11,12B=
31、reshape(A,4,3)例:C=reshape(A,2,6)C=reshape(A,5,2)56查看矩阵的大小 查看矩阵的大小:size、lengthsize(A)返回矩阵 A 的行数和列数size(A,1)返回矩阵 A 的行数size(A,2)返回矩阵 A 的列数length(x)length(X)若 x 是向量,则返回 x 的长度若 X 是矩阵,则返回行数和列数中大的一个numel(A)返回 A 的元素的个数A=1,2,3; 4,5,6size(A)size(A,1)size(A,2)length(A), numel(A)x=1:5; length(x)例:57 Matlab应用(一)
32、 矩阵运算58本讲主要内容数组运算 函数的使用 变量的输入输出 59矩阵的数组运算 数组运算:对应元素进行运算 数组运算包括:点乘、点除、点幂 相应的四个数组运算符为: .* ./ . . 点与算术运算符之间不能有空格!参与运算的对象必须具有相同的形状!A=1,2,3; 4,5,6; B=3,2,1; 6,5,4;C=A.*B D=A./BE=A.B例:60函数取值设 x 是变量, f 是一个函数 当 x = a 是标量时,f(x) = f(a) 也是一个标量 当 x = x1, x2, , xn 是向量时,则 f(x) = f(x1), f(x2), , f(xn) 是一个与 x 长度相同的
33、向量 函数作用在矩阵上的取值 若 A 是矩阵,则 f (A) 是一个与 A 同形状的矩阵f 作用在 x 的每个分量上!x=0:pi/4:pi; A=1,2,3; 4,5,6;y1=sin(x) y2=exp(A)y3=sqrt(A)例:61矩阵的超越函数 Matlab 提供的矩阵函数:expm、sqrtm、logm详情参见联机帮助(help expm / sqrtm / logm ) 更一般的矩阵函数: funmfunm(A, fun)fun 可以是 exp, log,cos,sin,. .怎样计算 eA ? 矩阵函数 将矩阵作为一个整体参与运算62矩阵与数的运算 加减:矩阵的每个元素都与数作
34、加减运算 数乘:矩阵的每个元素都与数作乘法运算 矩阵除以一个数:每个元素都除以这个数 数与矩阵的点幂运算:采用数组运算 矩阵与数的运算例:x=1 2 3; x.2=12,22,32=1,4,92.x=21,22,23=2,4,8Matlab中所有标点符号必须在英文状态下输入!63常用数学函数sin(x)、cos(x)、tan(x)、cot(x)、sec(x)、csc(x)、sinh(x)、cosh(x)、tanh(x) .asin(x)、acos(x)、atan(x)、acot(x)、asec(x)、acsc(x) .exp(x) % ex 自然指数 (以 e 为底)pow2(x) % 2x
35、以 2 为底的指数 log(x) % ln(x) 自然对数 (以 e 为底)log2(x) % 以 2 为底的对数log10(x) % 以 10 为底的对数sqrt(x) % 平方根abs(x) % 绝对值64常用数学函数conj(z) % 复数的共轭 real(z) % 复数的实部 imag(z) % 复数的虚部angle(z) % 复数的辐角sign(x) % 符号函数round(x) % 取整函数 (四舍五入)fix(x)、floor(x)、ceil(x) % 另外三个取整函数 mod(x,y) % 计算 x 除以 y 的余数(结果与 y 同号)rem(x,y) % 计算 x 除以 y
36、的余数(结果与 x 同号)gcd(x,y) % 最大公约数lcm(x,y) % 最小公倍数65常用数学函数linspace(a,b,n) % 生成 a 到 b,n 个数的等差数列logspace(a,b,n) % 生成 10a 到 10b,n 个数的等比数列max(x) % 求 向量 x 中的最大值min(x) % 求最小值mean(x) % 求平均值sum(x) % 求和sort(x) % 排序det(A) % 矩阵行列式inv(A) % 矩阵的逆eig(A) % 矩阵的特征值rank(A) % 矩阵的秩若参数 x 是矩阵,则作用在其各列上66 输出格式Matlab 的输出格式 Matlab
37、 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量 “ans” 在屏幕上输出运算结果时,可以通过 format 命令指定输出格式format 只改变输出格式,不会改变变量的值!67各种 format格式解释例format短格式(缺省格式),同 short3.1416format short短格式(缺省格式),小数点后 4 位3.1416format long长格式,双精度 15位,单精度 7位3.14159265358979format short e短格式e方式(科学计数格式)3.1416e+000format long e长格式e
38、方式3.141592653589793e+000format short g短格式g方式3.1416format long g长格式g方式3.14159265358979format rat分数形式355/113format compact压缩格式format loose自由格式format +, format bank, format hex (详情查看联机帮助)68变量的存储 将变量保存到 mat 文件中save将所有变量保存到文件 matlab.mat 中save fnamesave fname.mat 将所有变量保存到文件 fname.mat 中save fname 变量将指定变量保存
39、到文件 fname.mat 中 可同时保存多个变量,各变量之间用空格隔开例:x=2:5; A=magic(3); a=2.4;save mydata A x; 从 mat 文件中读取变量load fname读取 fname.mat 中的所有变量load fname 变量从 fname.mat 中读取指定的变量69Matlab应用(二) 二维平面作图 三维空间作图70本讲主要内容 二维平面作图 三维空间作图 符号作图 Matlab 绘图过程/原理 71手工作图如何画出 ysin(x) 在 0, 2 上的图像?72Matlab 作图 找点: x = 0, pi/4, pi/3, pi/2, pi,
40、 . 求值: y = sin(0), sin(pi/4), sin(pi/3), . 描点:在坐标系中画出这些离散点 连线:用直线或曲线连接这些点,得到函数的大致图形 手工作图 Matlab 作图 找点: x=0:pi/10:2*pi; 求值: y=sin(x); 描点、连线:使用 Matlab 提供的绘图函数 plotx=0:pi/10:2*pi; y=sin(x);plot(x,y);例:73二维作图命令 平面曲线绘图命令: plot 这里 x, y 都是向量,长度必须相同 以 x 的分量为横坐标, y 的分量为纵坐标,作平面曲线x=0:pi/10:4*pi; y=cos(x);plot(
41、x,y);例:作 y = cos(x) 在 0, 4 上的图像plot(x,y)74二维作图命令 平面曲线绘图命令: plot 绘制向量 y 的线性图 即以下标为横坐标,y 的分量为纵坐标,等价于:y=0,0.4,0.8,1.0,0.9,6.1;plot(y);例:plot(y)x=1:length(y); plot(x,y);思考:plot(y) 与 plot(x,y) 有什么区别?75图形的属性这里的 str 是用 单引号 括起来的字符串,用来指定图形的属性:点、线的形状和颜色 指定点和线的属性plot(x,y,str)x=0:pi/20:2*pi;plot(x,cos(x),r+:);例
42、:红色、虚线、点用加号表示x=0:pi/20:2*pi;plot(x,cos(x),bo-);蓝色、间断线、点用圆圈表示颜色,线型,点标记:可以全部指定,也可以部分指定,顺序任意76点和线的基本属性线型点标记颜色- 实线: 虚线-. 点划线- 间断线 空白(不画线). 点o 小圆圈x 叉子符+ 加号* 星号s 方格d 菱形 朝上三角v 朝下三角 朝右三角 sphere(60); axis equal;96 其它调用方式:坐标轴控制axis(xmin,xmax, ymin,ymax, zmin,zmax) 作用:指定坐标轴的显示范围 坐标轴控制命令axis auto自动,使得图形的坐标满足图中的
43、一切元素axis equal 各坐标轴采用等长刻度axis square 使绘图区域为正方形axis manual 以当前的坐标限制图形的绘制(多图时). .更多用法参见联机帮助:help axisaxis on/off % 显示/不显示坐标轴97 s 为字符串,表示所采用的色系,常用的值有颜色映象相应的颜色系autumn红黄色系gray线性灰色系cool青和洋红色系pink柔和色系. .更多参见联机帮助: help colormap图像的着色方案colormap(s) 图形的着色方案98绘图小结 平面曲线绘图:X=a:h:b;(1) 绘图区域划分y=f(x); % (2) 计算分割点上的函数
44、值plot(x,y); (3) 调用 Matlab 绘图命令99绘图小结 三维曲面绘图:x=a:h1:b; y=c:h2:d;(1) 绘图区域划分X,Y=meshgrid(x,y); (2) 生成网格Z=z(X,Y); % 数组运算(3) 计算在网格点上的函数值mesh(X,Y,Z); (4) 调用 Matlab 绘图命令100绘图小结 三维曲面参数方程绘图:u=a:h1:b; v=c:h2:d;(1) 绘图区域划分U,V=meshgrid(u,v); (2) 生成网格X=x(U,V); Y=y(U,V); Z=z(U,V); % 数组运算(3) 计算在网格点上的函数值mesh(X,Y,Z);
45、 (4) 调用 Matlab 绘图命令101本讲主要内容 二维平面作图 三维空间作图 符号作图 Matlab 绘图过程/原理102二维曲线 ezplot 二维曲线符号绘图函数ezplot(f(x),a,b)绘制 y = f (x) 在区域 a x b 上的图形ezplot(f(x,y),a,b,c,d)绘制 f (x, y) = 0 在区域 a x b, c y d 上的图形ezplot(x(t),y(t),a,b)绘制 x = x(t), y = y(t) 在区域 a t b 上的图形103二维曲线 ezplotezplot(f(x)绘制 y = f (x) 在区域 -2 x 2 上的图形e
46、zplot(f(x,y)绘制 f (x, y) = 0 在区域 -2 x, y 2 上的图形ezplot(x(t),y(t)绘制 x = x(t), y = y(t) 在区域 0 t 2 上的图形缺省的绘图区间为 -2, 2缺省的绘图区间为 -2, 2缺省的绘图区间为 0, 2104ezplot 作图ezplot(sin(x);ezplot(sin(x),-pi,pi);符号作图时要注意使用 单引号!105Matlab 符号作图 空间曲线符号作图ezplot3(x(t),y(t),z(t),a,b) 绘制空间曲线:x = x (t) , y = y (t) , z = z (t) , a t
47、bezplot3(x(t),y(t),z(t) 绘制空间曲线:x = x (t) , y = y (t) , z = z (t) , 0 t 2缺省的绘图区间为 0, 2ezplot3(2*t,sin(t),cos(t),0,20)例:106Matlab 符号作图 空间曲面符号绘图函数: ezmesh、ezsurf ezmesh(z(x,y),a,b,c,d) ezmesh(z(x,y),a,b) ezmesh(z(x,y)ezsurf 的用法与 ezmesh 相同107Matlab 符号作图 空间曲面符号绘图函数: ezmesh、ezsurf ezmesh(x(s,t),y(s,t),z(s
48、,t),a,b,c,d) ezmesh(x(s,t),y(s,t),z(s,t),a,b) ezmesh(x(s,t),y(s,t),z(s,t)108本讲主要内容 二维平面作图 三维空间作图 符号作图 Matlab 绘图过程/原理109曲线作图过程 基本原理:点 线,即先画点,后连线二、连线x=0:pi/5:2*pi;plot(x,sin(x),r.-)例:一、画点x=0:pi/5:2*pi;plot(x,sin(x),.)三、加密x=0:pi/20:2*pi;plot(x,sin(x),r.-)110线: 分别沿 x 方向和 y 方向 连接这些点即可得到三维曲面作图先画点,后连线,构成曲面
49、网格图点:111 Matlab应用(三) Matlab 符号运算112主要内容 Matlab 符号运算介绍 符号对象与基本符号运算 symvar、 subs 和 vpa 常见的符号计算113符号运算 计算以推理方式进行,不受计算误差累积所带来的困扰 符号计算指令的调用比较简单,与教科书上的公式相近 符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时 ) 符号计算所需的运行时间相对较长 符号运算的特点 114Matlab 符号运算 Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。 Matlab 的符号数学工具箱可以完成几乎所有得
50、符号运算功能,如:符号表达式的运算,符号矩阵的运算,符号微积分,符号作图,符号代数方程求解,符号微分方程求解等。 此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。 Matlab 符号运算 115符号运算举例 求一元二次方程 ax2 + bx + c = 0 的根 solve(a*x2+b*x+c=0) 求的根 f (x) = (cos x)2 的一次导数x=sym(x);diff(cos(x)2) 计算 f (x) = x2 在区间 a, b 上的定积分syms a b x;int(x2,a,b)116内容提要 Matlab 符号运算介绍 符号对象与基本符号运算 symvar、
51、subs 和 vpa 常见的符号计算117 在进行符号运算时,必须先定义基本的符号对象,可以是 符号变量、符号表达式等 符号对象是一种数据结构 符号对象 符号表达式:含有符号对象的表达式 符号矩阵/数组:元素为符号表达式的矩阵/数组 Matlab 符号对象 118 sym 用来建立单个符号对象,一般调用格式为: 符号对象的定义/声明:sym、syms符号对象的建立例:a=sym(a) 符号变量 = sym(x)参数 x 可以是一个数或数值矩阵,也可以是字符串a 是符号变量b 是符号常量b=sym(1/3)C 是符号矩阵C=sym(1 ab; c d)119符号对象的建立syms 符号变量1 符
52、号变量2 . 符号变量n 例:syms a b c;a=sym(a);b=sym(b);c=sym(c); syms 用来声明多个符号变量,一般调用格式为: 符号对象的定义/声明:sym、syms120例: 建立符号表达式通常有以下 2 种方法: (1) 用 sym 函数直接建立符号表达式 (2) 使用已经定义的符号变量组成符号表达式 y=sym(sin(x)+cos(x)x=sym(x);y=sin(x)+cos(x)符号表达式syms x;y=sin(x)+cos(x) 符号表达式:含符号对象的表达式121Matlab 符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的
53、运算符和基本函数完全相同基本符号运算 普通运算: 数组运算: 矩阵转置: 基本运算 基本数学函数三角函数与反三角函数、指数函数、对数函数等sin,cos,asin,acos,exp,log,abs,diag,tril,triu, .+ - * / .* . ./ . .122符号矩阵A=sym(1+x, sin(x); 5, exp(x) 使用 sym 函数直接生成 将数值矩阵转化成符号矩阵 符号矩阵中元素的引用和修改B=2/3, sqrt(2); 5.2, log(3); C=sym(B)A=sym(1+x, sin(x); 5, exp(x);A(1,2) % 引用A(2,2)=sym(c
54、os(x) % 重新赋值 符号矩阵的生成123内容提要 Matlab 符号运算介绍 符号对象与基本符号运算 symvar、 subs 和 vpa 常见的符号计算124symvarsymvar(s)symvar(s, N) 列出符号表达式中的符号变量 按字母顺序列出符号表达式 s 中的所有符号变量 列出符号表达式 s 中离 x 最近的 N 个符号变量 若有两个符号变量与 x 的距离相等,则ASCII 码大者优先 常量 pi, i, j 不作为符号变量f=sym(2*v-3*y+z2+5*a)symvar(f)symvar(f,2)例:125subs 用 a 替换符号表达式 s 中的符号变量 x
55、这里 a 可以是 数/变量/表达式 或 符号变量/表达式 符号替换 用给定的数据替换符号表达式中的指定的符号变量subs(s,x,a)syms x y u v;f1=2*x+y-1;f2=subs(f1,x,u)f3=subs(f1,y,2+3)f3=subs(f1,x,y,u,v) 例:126subs 举例f=sym(2*u);f1=subs(f,u,2)f2=subs(f,u,u+2)f3=subs(f,u,1,2)a=3; f4=subs(f2,u,a+2)f5=subs(f2,u,a+2)syms x y;f6=subs(f,u,x+y)f7=subs(f6,x,y,1,2)f8=su
56、bs(f6,x,y,x+y,x+y)例:指出下面各条语句的输出结果符号变量若没有声明,则需要加上单引号!f=2*uf1=4f2=2*u+4f3=2,4f4=14f5=2*a+8f6=2*x+2*yf7=6f8=4*x+4*y127vpa 计算表达式 s 的值,保留 n 位有效数字 返回值是符号对象 可变精度vpa(s,n)x1=vpa(sin(pi/2),10)x2=vpa(pi3,3)x3=vpa(pi,100) 例:128内容提要 Matlab 符号运算介绍 符号对象与基本符号运算 symvar、 subs 和 vpa 常见的符号计算 因式分解、展开、合并、简化及通分等 计算极限 计算导数
57、 计算积分 符号级数求和 代数方程和微分方程的求解129因式分解factor(f)syms x; f=x6+1; factor(f) factor 也可用于正整数的分解s=factor(100)factor(12345678901234567890) % ERRORfactor(sym(12345678901234567890)对大整数进行因式分解时可以先将其转化成符号常量例:例: 因式分解130函数展开expand(f)syms x; f=(x+1)6;expand(f) 多项式展开 三角函数展开syms x y; f=sin(x+y);expand(f) 函数展开例:例:131合并同类项s
58、yms x y; f=x2*y+y*x+y2+2*x ;collect(f)collect(f,y)例:collect(f,v) % 按指定变量 v 进行合并collect(f) % 按默认变量进行合并 合并同类项 默认变量:symvar(f,1) 的返回结果syms u v; g=u2*v+u*v3-u2+v;collect(g)132函数简化y=simplify(f) 函数简化 对符号表达式 f 进行简化syms x; f=sin(x)2 + cos(x)2;y=simplify(f)例:133函数简化y=simple(f) 函数简化 对 f 尝试多种不同的方法(包括 simplify)进
59、行简化, 以寻求其最简短形式例:化简syms x; f=(cos(x)2-sin(x)2)*sin(2*x)*(exp(2*x) . -2*exp(x)+1)/(exp(2*x)-1);y1=simplify(f)y2=simple(f)134函数简化N,D=numden(f) 通分 N 为通分后的分子,D 为通分后的分母syms x y; f=x/y+y/x;N,D=numden(f )n,d=numden(sym(112/1024)例:135horner 多项式 horner 多项式:嵌套形式的多项式syms x; f=x4+2*x3+4*x2+x+1;g=horner(f)例:136计算
60、极限limit(f,x,a) % 计算limit(f,a) % 当默认变量趋向于 a 时的极限limit(f) % 计算 a=0 时的极限limit(f,x,a,right) % 计算右极限limit(f,x,a,left) % 计算左极限例:计算 ,syms x h n; L=limit(log(x+h)-log(x)/h,h,0)M=limit(1-x/n)n,n,inf) 计算极限137计算导数g=diff(f,v) % 求符号表达式 f 关于变量 v 的导数g=diff(f) % 计算关于默认变量的导数g=diff(f,v,n) % 求 f 关于 v 的 n 阶导数 计算导数syms
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年个人股权委托管理转让合同范本3篇
- 2025年度个人合伙退伙合同范本精要3篇
- 现代社会生活中的常见隐患及其家庭预防策略研究报告
- 智慧医疗与健康科技的发展
- 二零二五年度车间承包与安全生产责任合同4篇
- 游戏化学习小学生注意力培养的新模式
- 网络安全技术与隐私保护措施研究
- 2025年度虚拟现实体验店租赁合同
- 网络环境下家庭信息的安全存储与分享策略
- 玉林2025年广西玉林市第一人民医院招聘24人笔试历年参考题库附带答案详解
- 2024人教新目标(Go for it)八年级英语上册【第1-10单元】全册 知识点总结
- 剧本杀店长合同范例
- 华中师范大学第一附中2025届高考仿真模拟数学试卷含解析
- 农村自建房施工合同模板
- GB/T 44731-2024科技成果评估规范
- 影视动画设计与制作合同
- 2023学年广东省深圳实验学校初中部九年级(下)开学语文试卷
- 企业新员工培训师带徒方案
- 2025届河南省郑州一中高三物理第一学期期末学业水平测试试题含解析
- 个体工商户章程(标准版)
- 河南省安阳市2024年中考一模语文试卷(含答案)
评论
0/150
提交评论