matlab与科学工程计算.ppt_第1页
matlab与科学工程计算.ppt_第2页
matlab与科学工程计算.ppt_第3页
matlab与科学工程计算.ppt_第4页
matlab与科学工程计算.ppt_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

matlab科学工程计算 同济大学数学系陈雄达chenxiongda 2 teapotdemo 3 目录 matlab入门matlab基础编程matlab作图matlab工具箱matlab上机操作matlab综合训练matlab命令速查 4 matlab入门 matlab是什么matlab不是什么matlab集成环境matlabABC 5 matlab入门 没有matlab就没有乐趣 M N NachtigalS C ReddyL N Trefethen关于迭代法的CopperMountain论文集1990 6 matlab是什么 一个可视化的计算程序 广泛使用于从个人计算机到超级计算机范围内的各种计算机上包括命令控制 可编程 上百个预先定义命令和函数有许多强有力的命令 能完成大量的高级矩阵处理强有力的二维 三维图形工具能与其他程序一起使用25个 不断增加中 不同的工具箱应用于特殊的应用领域工业研究与开发的有力工具数学教学 尤其线代 数值分析 科学计算方面的教研工具电子学 控制理论 物理学等工程科学方面的教研工具经济学 化学和生物学等有计算问题的所有领域中的教学与研究名字取自矩阵实验室 matrixlaboratory 7 matlab不是什么 不是万能的解决工具不是最高性能的编程语言受计算条件限制 不能解决超大型实际问题不能解决工具箱之外的问题种类 需要编写接口 算法甚至工具箱 8 集成环境 窗口系统View DesktopLayout FivePanel历史命令 变量和文件管理 命令窗口菜单系统File Edit View Web Window Help按钮 9 matlabABC 提示符 注释符 续行 123 45 67 8 9x 3 sin pi 4 2向量 数组 v 135246 矩阵 二维数组 A 13 5 246 10 matlab基础编程 数据结构冒号 矩阵操作入门标识符初等函数 elfun 初等函数 exp 函数fix round ceil floor逻辑判断关系运算 运算的级别matlab帮助结构化编程脚本文件函数文件 11 数据结构 最基本的数据结构 矩阵数和向量看成为特殊的矩阵矩阵以 为定界符 与多维数组等同字符串看成为每个元素都是单个字符的向量 也可以有字符矩阵高维数组细胞 cell 结构体 struct 12 冒号 冒号a s b从a开始 步长为s 界为b例如1 2 10 13579 7 2 0 7531 1 6 123456 6 2 空矩阵 13 标识符 文件名 变量名 函数名标识符的规定最长不超过19个字符为配合matlab的风格 采用见名知意的小写短名称以字母开头 包含数字 大小写字母 下划线变量命名规则常用从简 专用从繁矩阵大写A B C向量小写u v w x y z函数小写f g h fun f1 f2常量小写alpha beta a b c 14 内部变量 pi圆周率 3 1415926i j虚根inf无限大eps2 2204460e 16NaN不定型 NotaNumber 内部变量的运算规则inf参与的运算NaN参与的运算 15 点运算 向量运算 a 1234 b 0123 a bans 1357 b aans 00 50000 66670 7500 b aans 02612 a bans 12964 16 矩阵操作入门 矩阵的抽取A 816 357 492 A 2 3 得到7A 2 321 得到 753 A 32 2 1 1 得到 94 53 A 2 得到 357 A end 得到 6 7 2 17 赋值语句 A 2 A n 1 A 2 3 2 3 x A sqrt 4 x 3 A v end A 2 2 x 2 x A sqrt 4 x 3 A inv A x 0 左值表达式 指向某一存储空间的表达式 放在赋值语句左边 18 初等函数 elfun 三角函数 sin sinh asin asinh 指数对数 exp log log10 sqrt 复变函数 abs conj real imag 取整取余 floor ceil round mod 全部都具有向量功能 输入向量 返回对应函数值组成的向量 19 初等函数 exp x 0 0 2 1x 00 20 40 60 81 0 y exp x y 1 001 221 491 822 222 71 向量功能 20 函数fix round ceil floor 21 简单矩阵操作 rand n eye n zeros n 生成n阶随机 单位 零矩阵 rand 2 ans 0 95010 60680 23110 4860 rand 3 2 ans 0 89130 01850 76210 82140 45640 4447 eye 2 3 ans 100010 zeros 3 ans 000000000 22 diag diag 123 456789 ans 159 diag 123 456789 1 ans 26 diag 159 ans 100050009 diag 48 1 ans 000400080 23 triu tril A magic 3 A 816357492 U triu A 1 U 816357092 L1 tril A 1 L1 000300490 L2 tril A L2 800350492 24 字符运算 char 4 1 8 8 11 100 ans hello abs matlab ans 109971161089798 eval exp pi i ans 1 0i feval sin pi 2 ans 1 fun cos feval fun pi 2 ans 0 字符串 25 字符运算 fork 1 9 st fun num2str k x k feval st x k endfunctiony fun1 x functiony fun2 x str2num 2 pi ans 6 2832str2num cos 2 pi ans 1eval cos 2 pi ans 1 26 逻辑判断 真值逻辑真 true 1 或假 false 0 逻辑运算 例如又如 pi sqrt 10 ans 0 1 5 pians 00011 向量功能 27 关系运算 关系运算有 与 and and a b a b或 or or a b a b非 not not a a异或 xor xor a b 28 两个特殊关系运算 any all 仅当输入向量v每个分量为真 非零值 all v 返回1 否则返回0 仅当输入向量v每个分量为假 零 any v 返回0 否则返回1 any 0123 ans 1 all 0123 ans 0 29 运算的级别 函数 括号算术运算逻辑运算关系运算每一个运算级别内仍有优先级的高低 30 matlab帮助 helphelp命令名 工具箱名helphelpdocdoceigwhat列出当前matlab文件who whos列出当前变量which寻找matlab文件或命令所在目录lookfor比较lookforcurve helpcurve 31 结构化编程 分支结构 if for循环while循环嵌套结构程序规范 32 分支结构 if if判断条件1执行语句1elseif判断条件2执行语句2elseif判断条件3执行语句3else执行语句n 1end iftemp 10 disp cold elseiftemp 20 disp cool elseiftemp 27 disp warm elseiftemp 31 disp hot elsedisp toohot end 33 for循环 for循环变量 循环值循环操作end s 0 fork 1 100 s s 1 k 2 end fork helloworld fprintf c k pause 0 1 end fork magic 3 k 1end 向量功能 34 while循环 while循环条件循环操作endwhile1 if循环条件 break end循环操作end n input n whilen 1 ifmod n 2 1 n n 3 1 elsen n 2 endend Collatz猜想 35 嵌套结构 fork 1 9 forj 1 9 fprintf d d 3d k j k j endfprintf n end 九九乘法表 36 嵌套结构 n input n 0 flag 0 while flag nn n rn 0 whilenn 0 d mod nn 10 rn rn 10 d nn floor nn 10 enddisp rn ifrn n flag 1 elsen rn n endend 输入n设置迭代指标为0当迭代不成功时 0 保留当前n计算n的逆序为rn显示rn重新设置迭代指标或n rn nend 迭代不成功 伪代码 源代码 对一个整数n 把它反过来读的数称为逆序数 如132的逆序数为231 写一个算法 输入n 若它与自己的逆序数相等 则停止 否则把它与自己的逆序数相加 重新判断 37 程序规范 程序按照结构缩进 matlab会自行处理 按照逻辑关系分段添加适当的注释 5 30 规范所有的标识符 文件名 变量名 适当增加空行 空格以保证可读性办法 参考Matlab内部程序风格 38 脚本文件 n input years fork n ifmod k 400 0 disp num2str k isaleapyear elseifmod k 100 0 disp num2str k isn taleapyear elseifmod k 4 0 disp num2str k isaleapyear elsedisp num2str k isn taleapyear endend 判别闰年不用这么烦吧 n input years fork n ifmod k 400 0 mod k 4 0endend 好像简单多了 39 函数文件 function p t fun n n inputinteger p sumoffactors t numberoffactorsp 0 t 0 fork 1 n ifmod n k 0 p p k t t 1 endend function p t fun n n inputinteger p sumoffactors t numberoffactorsk 1 n z mod n k t sum z 0 p sum k z 0 保存为fun m 40 函数的调用 z p fun 15 z 24p 4 x fun 6 x 12 fun 28 ans 56 p z funInputargument n isundefined p z fun 20 18 Toomanyinputarguments p t b fun 15 Toomanyoutputarguments function p t fun n 41 函数的相互调用 寻找亲和数对 即这样两个数 它们的真因子之和等于对方 functionX amic n s 1 fork 2 n ifk fun fun k X s 12 k fun k s s 1 endend functionp fun n k 1 n 1 z mod n k p sum k z 0 调用 子函数 42 递归调用 函数调用自己称为递归 因此必须有停止自调用的时刻 例 Frayer级数 即 0 1 上分母不超过n的既约真分数从小到大排列 每一次把新出现的分数 放在两个已有分数中 这两个分数的分子和分母各自的和就是新分数的分子和分母 43 递归调用 function p q frayer n ifn 1 p q frayer n 1 ind find q 1 end 1 q 2 end n fork ind end 1 1 q q 1 k nq k 1 end p p 1 k p k p k 1 p k 1 end endelseifn 1 p 0 1 q 1 1 end 44 递归调用 functionv fact n ifn 0 n 1 v 1 elsev n fact n 1 end v prod 1 n 阶乘 45 算法的复杂度 s 0 fork 1 n p 1 forj 1 k p p j ends s 1 p 1 end op 0 fork 1 n op op 1 forj 1 k op op 1 endop op 3 end op 4n n n 1 2 46 算法的复杂度 s 0 p 1 fork 1 n p p k s s 1 p 1 end op 2 fork 1 n op op 1 op op 3 end op 4n 2 47 matlab作图 二维作图三维作图其它作图 48 二维作图 plot plot x y s 例如x linspace 0 2 pi y sin x plot x y r 49 二维作图 plot plot x y s s的规定 50 二维作图 plot xlabel x ylabel y title y sin x 51 二维作图 polar theta linspace 0 6 pi rho theta polar theta rho r 52 三维作图 plot3 plot3 x y z s t 0 pi 50 10 pi plot3 sin t cos t t 53 三维作图 comet3 t 0 pi 500 20 pi comet3 sin t cos t t 54 三维作图 meshgrid X Y meshgrid x y 例如 X Y meshgrid 1 3 4 7 则X 123且Y 444123555123666123 777 55 三维作图 mesh x linspace 5 5 X Y meshgrid x Z X 2 Y 2 mesh X Y Z view 60 28 如果X Y由meshgrid x y 生成 可写mesh x y Z surf有同样的格式 向量功能 56 其它作图 bar3 A 828263818281846184858079658486 bar3 A grouped 57 其它作图 pie3 pie3 2435 0110 North South East West 58 surf contour 例 山区地貌 在某山区测得一些地点的高程如下表 平面区域为1200 x 4000 1200 y 3600 试作出该山区的地貌图和等高线图 59 surf contour A 11301250128012301040900500700132014501420140013007009008501390150015001400900110010609501500120011001350145012001150101015001200110015501600155013801070150015501600155016001600160015501480150015501510143013001200980 x 1200 400 4000 y 1200 400 3600 surf x y A contour x y A 100 60 matlab工具箱 toolbox 矩阵计算 helpmatfun 最优化工具箱 helpoptim 微分方程工具箱 helpode45 helppde 多项式计算 helppolyfun 统计工具箱 helpstats 61 矩阵计算 inv inv A 求矩阵A的逆例 A magic 3 A 816357492 inv A ans 0 1472 0 14440 0639 0 06110 02220 1056 0 01940 1889 0 1028 62 矩阵计算 A hilb 3 A 1 00000 50000 33330 50000 33330 25000 33330 25000 2000 b ones 3 1 3行1列全是1的向量 x inv A bx 3 0000 24 000030 0000 A hilb 3 A 1 00000 50000 33330 50000 33330 25000 33330 25000 2000 b ones 3 1 3行1列全是1的向量 x A bx 3 0000 24 000030 0000 63 矩阵的秩 rank A magic 4 A 16231351110897612414151 rank A ans 3 64 矩阵的行列式 det A pascal 4 A 1111123413610141020 det A ans 1 65 矩阵的迹 trace A 1 4 1 4 A 1234246836912481216 trace A ans 30 66 矩阵的Cholesky分解 chol A pascal 4 A 1111123413610141020 B chol A B 1111012300130001 67 矩阵的特征值 eig A gallery 3 A 149 50 154537180546 27 9 25 eig A ans 1 000000000011221 999999999991622 99999999999700 V D eig A V 0 3162 0 4041 0 1391 0 94870 90910 9740 0 00000 1010 0 1789D 1 00000002 00000003 0000 68 最优化工具箱 linprog 什么是线性规划 f 11 A 2 1 5 8 b 10 40 Aeq beq lb 04 ub 7inf linprog f A b Aeq beq lb ub Optimizationterminatedsuccessfully ans 3 00004 0000 69 最优化工具箱 fminu x opts fminu f x0 options g p1 p2 最优解向量 求解情况 工具箱函数 目标函数字符串 初值 算法参数 目标函数梯度字符串 目标函数其他参数 helpfoptions 70 最优化工具箱 fminu functionv f x v 100 x 2 x 1 2 2 x 1 1 2 x fminu f 00 x 1 00001 0000 71 最优化工具箱 fzero x fv fzero f x0 options p1 p2 零点向量 函数值 工具箱函数 目标函数字符串 初值 算法参数 目标函数其他参数 helpfoptions 72 最优化工具箱 fzero f inline x exp x 3 x fv fzero f 2 x 0 79205996843068fv 0只能求单变量函数的根 73 最优化工具箱 fmincon x fmincon fun x0 111 8 120 6 000 cons functionv fun x v 3 x 1 x 2 2 x 3 function c ceq cons x c 1 x x 16 c 2 x 2 x 1 x 3 12 ceq 最优解 600 74 微分方程工具箱 ode45 t y ode45 odefun tspan y0 options p1 p2 求解函数 工具箱函数 算法参数 helpodeset 求解区间 初值 解的向量可用plot x y 画出解 目标函数其他参数 75 微分方程工具箱 ode45 functiondydx f x y dydx y x 1 x y ode45 f 0 2 1 plot x y r 76 多项式计算 多项式表示 向量 p 102 表示 多项式求值polyval p 1 5 多项式求根r roots p 用根生成多项式p poly r 多项式相乘p 102 q 21 s conv p q 多项式相除 q r deconv s p 多项式求导d polyder p 77 多项式计算 多项式拟合 polyfit x linspace 0 pi 8 x 00 44880 89761 34641 79522 24402 69283 1416 y sin x y 00 43390 78180 97490 97490 78180 43390 0000 p polyfit x y 2 p 0 40111 2601 0 0179 xx linspace 0 pi 200 yy polyval p xx plot xx yy r x y b linewidth 2 78 插值 interp1 yi interp1 x y xi method nearest 最邻近插值 linear 线性插值 spline 三次样条插值 cubic 立方插值缺省时 分段线性插值 79 插值 interp2 z interp2 x0 y0 z0 x y method nearest 最邻近插值 linear 双线性插值 cubic 双三次插值缺省时 双线性插值 80 统计工具箱 参数估计betafit binofit mle 概率密度函数betapdf binopdf hygepdf 各种分布的均值 方差betastat binostat chi2stat 线性 非线性的各种回归模型anova1 anova2 polyfit regress lsqnonneg nlinfit nlintool 81 matlab上机操作 遵守机房各项规定保持机房卫生

温馨提示

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

评论

0/150

提交评论