《2022年数学建模中matlab讲义 .pdf》由会员分享,可在线阅读,更多相关《2022年数学建模中matlab讲义 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、我们学校地数学建模上机课也有Mathlab 程序 ,看看下面有没有你要找地. 一基本运算1 求输入(12+2*(7-4/32执行2 输入x = (5*2+1.3-0.8*102/25执行再输入y= 2*x+1执行3 执行clear命令.观察结果4计算圆面积Area = ,半径r = 2,则可键入r=2。area=pi*r2。area 问 : 语 句 末 尾 加 分 号 与 不 加 分 号 有 何 区 别 ? 请 实 验 之5常用函数名称含义名称含义sin 正弦exp E为底地指数cos 余弦log 自然对数tan 正切log10 10为底地对数cot 余切log2 2为底地对数asin 反正弦
2、abs 绝对值acos 反余弦例:1)执行y = sin(10*exp(-0.3*42 2)想计算地值输入y1=2*sin(0.3*pi/(1+sqrt(5执行之若又想计算,可以简便地用操作:先按键则会出现上面输入过地 指令y1=2*sin(0.3*pi/(1+sqrt(5 ;然后移动光标 ,把 y1 改成 y2;把 sin 改成 cos 便可.即得y2=2*cos(0.3*pi/(1+sqrt(5然后执行之. 系 统 默 认4位 有 效 数 字 , 若 想 提 高 精 度 则 可 如 下 :digits(10。sym(y2,d 执行就可精确到小数点后10 位,还可将 10 改为其它数字实验二
3、矩阵运算1要得到矩阵, 可输入A = 1,2,3 。4,5,6 。7,8,9 执 行,观察结果还可分行输入A=1,2,3 4,5,6 7,8,9 效果相同2 注意% 号后地语句为注释, 练习时不必输入a=1,4,6,8,10 %一维矩阵a(3 % a地第三个元素ans = 6 ?x =1 2 3 4 5 6 7 8 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 8 页4 5 6 7 8 9 10 11。%二维2x8 矩阵执行后双击左边Workspace里地x,观察之?x(3 % x地第三个元素ans = 2 ?x(1 2 5 % x地
4、第一、二、五个元素ans = 1 4 3 如需要还可定义b=x(1 2 5执行后结果为b = 1 4 3 x(2,3 % x地第二行第三列地元素ans = 6 x(1:5 % x地第前五个元素ans = 1 4 2 5 3 ?x(10:end % x地第十个元素后地元素ans = 8 6 9 7 10 8 11 执 行 后 双 击 左 边Workspace里 地x, 观 察 是 哪 十 个 元 素?x(10:-1:2 % x地 第 十 个元 素 和 第 二 个元 素 地 倒 排ans = 8 5 7 4 6 3 5 2 4 ?x(find(x5 % x中大于5地元素ans = 6 7 8 6
5、9 7 10 8 11 ?x(4=100 %给x地第四个元素重新给值x = 1 2 3 4 5 6 7 8 4 100 6 7 8 9 10 11 ?x(3= % 删除第三个元素=1 % 加入第十六个元素x = Columns 1 through 12 1 4 100 3 6 4 7 5 8 6 9 7 Columns 13 through 16 10 8 11 1 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 8 页3 如不需要以前地变量时,为不干扰以后计算,可执行clear 清除以前地变量当元素很多地时候,则须采用以下地方式:?
6、x=(1:2:121 。% 以 起 始 值 为1,增 量 值 为2, 终 止 值 为121 地 矩 阵? x=linspace(0,1,100。 % 利用 linspace,生成以 0 为起始值 ,1为终止值 ,元素数目为100地矩阵?a= %空矩阵a = ?zeros(2,2 %全为0地矩阵ans = 0 0 0 0 ?ones(3,3 %全为1地矩阵ans = 1 1 1 1 1 1 1 1 1 ?rand(2,4。%随机矩阵4另外一种定义矩阵地方式?a=1:7。b=11:2:23。?c=b a 。% 利 用 上 面 建 立 地 阵 列a 及 阵 列b , 组 成 新 阵 列c ?d=b
7、。a。%利用a及b,组成新矩阵d 执行后双击左边Workspace里地c与d,比较之再如已知y=-1,6,15,7,31,2,4,5。x=y(3:5 %x为y地第 三 到 第 五 个 元 素组 成 地 新 向 量或 x=y(5,y(3,y(7 %x 为 y 地第五、第三、第七个元素组成地新向量或这样更简单x=y(5,3,7 5 输 入 矩 阵x=4,8,12,10,23 。 6,3,15,13,19 。 9,1,2,18,14 。 11,7,5,21,17 依 次 输 入 下 列 命 令 并 执 行 , 观 察 结 果 , 各 命 令 分 别 有 什 么 作 用 ?max(x min(x L=
8、length(x y=x a=x( :,2 b=x( :,2 c=x(3, : d=x(1 :3,3 :5 y(2,3=y(2,3/2 y(2, :=y(2, :/2 y( :,4=y( :,4+y( :,2 6 点运算执行下列命令,指出点运算地作用x=1 :8 常用命令min 最小值max 最大值mean 平均值std 标准差sort 排序diff 相邻元素地差length 个数sum 总和dot 内积cross 外积三画图二维图形命令含义plot绘图函数地叁数plot 建 立 向 量 或 矩 阵 各 队 队 向 量 地 图 形字 元颜 色字 元图 线 型 态loglog x 、 y轴 都
9、取 对 数 标 度 建 立 图 形y 黄 色. 点semilogx x 轴 用 于 对 数 标 度 ,y 轴 线 性 标 度 绘 制 图 形k 黑 色o 圆semilogy y 轴 用 于 对 数 标 度 ,x 轴 线 性 标 度 绘 制 图 形w 白 色x x title 给图形加标题b 蓝色+ + xlabel 给x轴加标记g 绿色* * ylabel 给y轴加标记r 红色- 实线text 在 图 形 指 定 地 位 置 上 加 文 本 字 符 串c 亮 青 色: 点 线gtext 在 鼠 标 地 位 置 上 加 文 本 字 符 串m 锰 紫 色-. 点 虚 线grid 打开网格线- 虚线
10、hold on 命 令 用于在 已画 好地图 形上 添 加新 地图 形1 x=0:0.001:10。 % 0 到 10 地 1000 个点 (每隔0.001 画一个点 地 x 座标y=sin(x。% 对应地y座标plot(x,y。% 绘图注:matlab 画图实际上就是描点连线 ,因此如果点取得不密 ,画出来就成了折线图 ,请实验之2 Y=sin(10*x。plot(x,y,r:,x,Y,b % 同时画两个函数3 若 要 改 变 颜 色 , 在 座 标 对 后 面 加 上 相 关 字 串 即 可 :x=0:0.01:10。plot(x,sin(x,r 4 若要同时改变颜色及图线型态,r* 5
11、用axis(xmin,xmax,ymin,ymax函数来调整图轴地范围axis(0,6,-1.5,1 6 MATLAB也 可 对 图 形 加 上 各 种 注 解 与 处 理 : 。% x轴注解ylabel(y轴。% y轴注解title(余弦函数。% 图形标题精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 8 页legend(y = cos(x。% 图形注解gtext(y = cos(x 。% 图 形 注 解, 用 鼠 标 定 位 注 解 位 置grid on。% 显示格线7画椭圆a = 0:pi/50:2*pi。%角度X = cos(a
12、*3。%参数方程Y = sin(a*2。plot(X,Y。xlabel(x, ylabel(y。title(椭圆 8 绘制函数在0 x 1时地曲线. x=0:0.1:1 y=x.*exp(-x %为什么用点运算?若不用会怎样plot(x,y,xlabel(x,ylabel(y,title(y=x*exp(-x 9 画 出 衰 减 振 荡 曲 线与 它 地 包 络 线及.t 地 取 值 范 围 是 0, 4 . t=0:pi/50:4*pi。y0=exp(-t/3。y=exp(-t/3.*sin(3*t。plot(t,y,-r,t,y0,:b,t,-y0,:b % -r 表 示 红 色 实 线
13、,:b 表 示 蓝 色 点 线 ,看 上 表grid 10 在同一个画面上建立几个坐标系, 用 subplot(m,n,p命令;把一个画面分成m n 个 图 形 区 域 , p 代 表 当 前 地 区 域 号,在 每 个 区 域中 分别 画一 个 图 ,如x=linspace(0,2*pi,30。y=sin(x。z=cos(x。u=2*sin(x.*cos(x。v=sin(x./cos(x。subplot(2,2,1,plot(x,y,axis(0 2*pi -1 1,title(sin(x subplot(2,2,2,plot(x,z,axis(0 2*pi -1 1,title(cos(x
14、 subplot(2,2,3,plot(x,u,axis(0 2*pi -1 1,title(2sin(xcos(x subplot(2,2,4,plot(x,v,axis(0 2*pi -20 20,title(sin(x/cos(x 三维图形11三维螺旋线:t=0:pi/50:10*pi。plot3(sin(t,cos(t,t %参数方程grid %添加网格12 t=linspace(0,20*pi, 501。plot3(t.*sin(t, t.*cos(t, t。%注意点乘也 可 以 同 时 画 出 两 条 曲 线 , 格 式 与 二 维 情 况 类 似 , 兹 不 举 例 . 13用m
15、esh命令画曲面画出由函数形成地立体网状图: a=linspace(-2, 2, 25 。% 在x轴 上从。% 在y轴上取25点x,y=meshgrid(a, b。% x和y都是21x21地矩阵z=x.*exp(-x.2-y.2。% 计 算 函 数 值 ,z也 是21x21地 矩 阵mesh(x, y, z。% 画出立体网状图14 surf和mesh地用法类似:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 8 页a=linspace(-2, 2, 25。% 在x轴上取25点b=linspace(-2, 2, 25。% 在y轴上取25点
16、x,y=meshgrid(a, b。% x和y都是21x21地矩阵z=x.*exp(-x.2-y.2。% 计 算 函 数 值 ,z也 是21x21地 矩 阵surf(x, y, z。% 画出立体曲面图四程序设计1 M-文件: 上面所做地运算都是在命令窗口中输入一条或两三条命令,然后执行 ,再输入 ,再执行 ,以这样交谈式地方式进行.如果为了解决某一问题需要很多命令,这样做就很不方便了 .这时我们把解决某一问题地所有命令集中放在一个文档里,命 名 、 保 存 . 然 后 只 要 在 命 令 窗 口 中 输 入 文 档 名 , 执 行 即 可 . 例:。y=sin(x。plot(x,y,r+ ti
17、tle(2D plot (2)点击文件编辑器上面工具条中地保存,命名 例如将上面地程序命名为picture),然后保存 .像这样在MATLAB 文件编辑器中编写地文件叫M-文件运 行 : i ) 在 命 令 窗 口 中 输 入 文 件 名 ( 如 上 面 地picture,然 后 执 行 . ii)或直接在文件编辑器上面地工具条中找到debug即调试) ,点击,再找到 runf(2+f2(3 % 表 示Y 是 x 地 函 数 ,x 是 自 变 量 ,fun1 是 函 数 名Y=(x3 - 2*x2 + x - 6.3/(x2 + 0.05*x - 3.14。然后保存. 注:在自己编写地函数前都
18、要写上function,表示这是自己定义地函数.fun1 表示函数名,那么最后文件名也应命名为fun1. fun1(1*fun1(2+fun1(3*fun1(3 结果为:ans = -12.6023 3 for 循环语句 =2*i。% 对每个i值,重复执行该指令end 。% 表 示 循 环 结 束 , 每 一 个for要 对 应 一 个end x % 要求显示运行后数组x地值. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 8 页输入后观察结果,体会for语句地作用. 注:在 MATLAB 里在 C 语言中也一样) ,地作用表示把等号
19、右边地值送给左边地变量 ,这和数学中相等地意思不同.下面地例子中都要这样理解,否则就不能明白程序地含义. 4 while循环语句例: Fibonacci 数列: 1,1,2,3,5,8, 即: ,=1。a(2=1。i=2。while a(i=a(i-1+a(i。i=i+1。end。i,a(i, 58 sums=number*0.95*cost。end, sums 8 sums=number*0.95*cost。else sums=number*0.5*cost。end, sums 6 例:用for 循环语句来寻找Fibonacc 数列中第一个大于10000 地元素 . n=100。 a=one
20、s(1,n。% a 是 一 个 一 行 ,n 列 地 所 有 元 素 为1 地 矩 阵for i=3:n a(i=a(i-1+a(i-2。if a(i=10000 a(i, break。% 表示跳出循环end。end, i 7 练习:课本 264页,参考例 4 右边地流程图 11.4,编程序求解例 4,自己设置误差 ,并与书上地结果比较. 五拟合与插值曲线拟合和插值函数polyfit(x, y, n 对 描 述 n 阶 多项式y=f(x 地 数据 进行 最 小 二 乘 曲线 拟合interp1(x, y, xo 1维线性插值interp1(x, y, xo, spline 1维3次样条插值in
21、terp1(x, y, xo, cubic 1维3次插值interp2(x, y, Z, xi, yi 2维线性插值精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 8 页interp2(x, y, Z, xi, yi, cubic 2维3次插值1 插值看课本266页 11.2第一段,了解什么是插值. 例 : 考 虑 下 列 问 题 ,12 小 时 内 ,一 小 时 测 量 一 次 室 外 温 度 .数 据 如 下 :时间:1,2,3, 4, 5, 6, 7, 8, 9,10,11,12 温度:5,8,9,15,25,29,31,30,2
22、2,25,27,24 现在根据以上数据估计3.2,4.7等时刻地温度hours=1:12。temps=5 8 9 15 25 29 31 30 22 25 27 24。t=interp1(hours, temps, 3.2,4.7 % 一阶线性插值 ,如果只估计一个点地值 ,则无须加方括号改 为t=interp1(hours, temps, 3.2,4.7, spline )则 为 三 次 样 条 插 值如果输入如下程序,则画出插值曲线hours=1:12。temps=5 8 9 15 25 29 31 30 22 25 27 24。h=1:0.1:12。t=interp1(hours, te
23、mps, h 。% h后 加 上 spline 则 为 三 次 样 条 插 值plot(hours, temps, + , h, t 用一阶线性插值和三次样条插值做课本268 页例 2,与书上之结果比较 ,然后挑课后题做一两道. 2 拟合看 课 本270页 11.3, 曲 线 拟 合 , 比 较 拟 合 与 插 值 有 什 么 区 别 . 例:两组数据如下:x=0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1。y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 。n=8。p1=polyfit(x,y,n 。 % n
24、表示用 n 阶多项式拟合 ,n=1为线性拟合 ,即通常所说最小二乘法poly2sym(p1 % 前面地拟合命令只给出多项式地系数,用此命令则将结果转化为真正地多项式.或用vpa(poly2sym(p1,10 即取数值形式,取 10 位有效数字x1=0:.01:1 。% 由 此 以 后 三 句 是 画 出 拟 合 曲 线 地 图 像y1=polyval(p1,x1 。%此 句 是 在 x1 这 些 点 处 求 出 多 项 式 地 值 ,送 给 y1 plot(x,y,o,x1,y1 改 变n 地 数 字 , 即 用 不 同 地 多 项 式 拟 合 , 看 看 哪 个 结 果 好 . 当 n=10 时,数据点之间出现大地波动 .当企图进行高阶曲线拟合时,这种波动现象经常发生 ,并不利于我们认识两组数据之间地规律,因此并不是阶数越高越好,实际问题当中,适当选一个即可. 用上面地指令做课本271 页例 1 及例 2,将结果与书上之结果比较. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 8 页