2022年数学建模MATLAB简介第一部分MATLAB基础 .pdf
附录: MATLAB 简介第一部分MATLAB基础一、MATLAB 入门启动 MATLAB 后,就进入命令窗口(Command Window ) ,提示符为 1、简单的运算例 1 计算球体积r=2; %有“; ”不显示结果v=4/3*pi*r3 %没有“;”显示结果注意: 1、可多个命令写一行,命令间用“,”或“;”分开。2、允许使用键来编辑前面的命令。2、变量和数据(1)变量有数值型和字符型两类,变量类型和数组大小无需预先定义。(2)常用的常量i 或 j复数单位 pi Inf无穷大(3)变量名以字母开头,后可跟字母、数字和下划线,区分大小写。(4)变量查询用who 或 whos,清除变量用clear。(5)数据显示格式是整数作为整数显示,实数显示4 位小数,可通过format 命令改变。(6)数据保存用save,调用用load。例 2 变量定义、查询和清除a=1+2*i A= This is a string who %变量查询whos %变量查询a %显示变量 a 的值clear a A;%清除变量 a 和 A clear;%清除所有变量例 3 数据显示、保存和调用b=5 c=pi format rational; c format; c save;%当前所有变量和数据保存到数据文件matlab.mat clear;c load;c 3、数学函数如sin(A) asin(A) tan(A) cot(A) exp(A) sqrt(A) abs(A) log(A)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 二、作图图形可直接保存为M 文件,也可以将其作为图片剪贴到WORD 文档或其它应用程序中,图形的颜色、线型、标记均可设定。1、曲线图plot(x,y) 作出以数据 (x(i),y(i)为节点的折线图fplot( fun ,a,b) 作出函数fun 在区间 a,b上的曲线图plot3(x,y,z) 作出空间曲线图例 4 作平面曲线的图形x=-1:0.2:2; y=abs(x).2.*sin(5*x); plot(x,y, :ro ); close; fplot( x3-x-1 ,-1,2) close; %关闭已有图形窗口fplot( tan(x),sin(x),cos(x) ,-2*pi,2*pi,-2*pi,2*pi) 例 5 作空间曲线的图象clear; close; t=0:0.1:20; r=exp(-0.2*t); h=0.5*pi*t; x=r.*cos(h); y=r.*sin(h); z=t; plot3(x,y,z) 2、曲面图x,y=meshgrid(xa,ya) 生成 x-y 平面上的网格数据mesh(x,y,z) 绘制网面图例 6 作曲面图象clear; close; %关闭已有图形窗口xa=-2:0.2:2; ya=xa; x,y=meshgrid(xa,ya); z=x.*exp(-x.2-y.2); mesh(x,y,z) 三、符号运算符号运算的变量、表达式均为符号对象,应当用sym 或 syms 生成。如syms a,b,c; %生成符号变量a,b,c 例 7 多项式运算举例syms x; f=(x-1)3; g=(x+1)3; h=f*g s=expand(h) %展开hf=factor(s) %因式分解hsub=subs(s,x,x2+x+1) %变量代换hsim=simple(hsub) %化简名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 四、代数方程(组)求根roots 求多项式方程的根fzero 求一元函数在a,b的实根 (要求函数在a,b 两点异号 ) fsolve 求方程(组)的数值解solve 方程(组)求解例 8 求方程05223xx的根roots(1 2 0 -5) 例 9 求方程xx1.0sin在2, 6中的实根fzero( sin(x)-0.1*x ,2,6) 例 10 解方程组0814110142121211xxxexxxx,y,f=fsolve( 4*x(1)-x(2)+exp(x(1)/10-1 , -x(1)+4*x(2)+x(1)2/8 ,0,0) 例 11 求方程232xexx和方程组034322xxyxyx的根solve( x2-3*x+exp(x)-2 , x ) solve( x2-3*x+exp(x)=2 ) x,y=solve( x2+x*y+y=3 , x2-4*x+3=0 ) 五、曲线插值与拟合1、一维插值Y1=interp1(X,Y ,X1, method ) 其中 X 和 Y 为原始数据点;X1 为加细的数据点或是我们希望得到插值数据的数据点。method 是指定插值方法:linear 线性插值cubic 三次多项式插值spline 三次样条插值pp=spline(x,y) 得到样条插值的分段多项式b,c=unmkpp(pp) b 显示样条函数的结点,c 显示样条函数的各个分段三次多项式的系数。例 12 线性插值clear all x=7.0 10.5 13.0 17.5 34.0 40.5 44.5 48.0 56.0 61.0 68.5 76.5 80.5 91.0 96.0 101.0 104.0 106.5 111.5 118.0 123.5 136.5 142.0 146.0 150.0 157.0 158.0; y1=44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68; y2=44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68; newx=7:0.1:158; newy1=interp1(x,y1,newx, linear ); newy2=interp1(x,y2,newx, linear ); Area=sum(newy2- newy1)*0.1/182*1600 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 例 13 三次多项式插值clear;close; x=linspace(0,2*pi*300,19); y=502.8 ,525.0,514.3,451.0,326.5,188.6,92.2,59.6,62.2,102.7,147.1,191.6,236.0,280.5,324.9,369.4413.8,458.3,502.8; plot(x,y,o );axis(0,2000,0,550);可见,可以用三次多项式插值,下面画出柱高插值曲线图。xi=0:2*pi*300; yi=interp1(x,y,xi, cubic );plot(xi,yi); 例 14 三次样条插值x=1:12; y=5 6 9 15 25 29 31 30 22 25 27 24; close; plot(x,y,x,y, + ) pp=spline(x,y); b,c=unmkpp(pp) 例 15 三次样条插值t=0 0.921 1.843 2.949 3.871 4.978 5.9 7.006 7.982 8.967 10.954 12.032 12.954 13.875 14.982 15.903 16.826 17.931 19.037 19.959 20.839 22.958 23.88 24.986 25.908; r=54.516 42.320 38.085 41.679 33.297 37.814 30.748 38.455 32.122 41.718 73.686 76.434 71.686 60.19 68.333 59.217 52.011 56.626 63.023 54.859 55.439 57.602 57.766 51.891 36.464; plot(t,r, b+ ); % (t,r) 表示时间和流速title(流速散点图 );xlabel( 时间 (小时 ) ); ylabel(流速 (立方米 /小时 ) )使用 MATLAB 软件中的三次样条插值命令得到用水率函数如下图所示。x0=t;y0=r; l,n=size (x0); dl=x0(n)-x0(1); x=x0(1):1/3600:x0(n); %被插值点ys=interp1 (x0,y0,x, spline ); %样条插值输出plot (x,ys); title(样条插值下的流速图);xlabel( 时间 (小时 ) ); ylabel(流速 (立方米 /小时 ) )2、曲线拟合p=polyfit(x,y,n) 按 n 次多项式拟合例 16 线性函数拟合x=100 110 120 130 140 150 160 170 180 190; y=45 51 54 61 66 70 74 78 85 89; close; plot(x,y) p=polyfit(x,y,1) 例 17 非线性函数化为线性函数拟合t=0 1 2 3 4 5 6 7 8 9 10; u=100 75 55 40 30 20 15 10 10 5 5; close; plot(t,u) T=t; U=log(u); p=polyfit(T, U,1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - b=p(1) a=exp(p(2) 例 18 多项式函数拟合x=34 36 37 38 39 39 39 40 40 41 42 43 43 45 47 48; y=1.30 1.00 0.73 0.90 0.81 0.70 0.60 0.50 0.44 0.56 0.30 0.42 0.35 0.40 0.41 0.60; close; plot(x,y) p=polyfit(x,y,2) xi=linspace(34,48,1000); %绘图的 X 轴数据z=polyval(p,xi); %得到多项式在数据点处的值close; plot(x,y, ko ,xi,z, r- ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -