资源预览内容
第1页 / 共87页
第2页 / 共87页
第3页 / 共87页
第4页 / 共87页
第5页 / 共87页
第6页 / 共87页
第7页 / 共87页
第8页 / 共87页
第9页 / 共87页
第10页 / 共87页
亲,该文档总共87页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数学实验与Matlab,MATLAB是一种交互式的以矩阵为基础的系统计算平台,它用于科学和工程的计算与可视化。 Matlab的含义是矩阵实验室(Matrix Laboratory),是美国Math Work公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵计算、信号处理和图形显示于一体,已发展成为国际上最优秀的科技应用软件之一。,Matlab软件简介,矩阵是MATLAB的核心.,目 录,实验一:矩阵运算与Matlab命令; 实验二:函数可视化与Matlab作图; 实验三:插值和拟和; 实验四:微分、积分和常微分方程; 实验五:最优化方法; 如何撰写数学建模论文.,实 验 一,矩阵运算与Matlab命令,Matlab基本指令,向量的创建和运算,1. 直接输入向量,x1=1 2 4, x2=1,2,1, x3=x1,2. 冒号创建向量,x1=3.4:6.7, x2=3.4:2:6.7, x3=2.6:-0.8:0,3.生成线性等分向量,指令x=linspace(a,b,n) 在a,b区间产生 n 个等分点(包括端点) 例如:x=linspace(0,1,5) 结果 x = 0 0.2500 0.5000 0.7500 1.0000,工作空间,在Matlab窗口创建向量后并运行后,向量就存在于工作空间(Workspace),可以被调用。,向量的运算,设三维向量x=x1 x2 x3; y=y1 y2 y3; ,a, b为标量。 向量的数乘:a*x=a*x1 a*x2 a*x3 向量的平移: x+b=x1+b x2+b x3+b 向量和: x+y=x1+y1 x2+y2 x3+y3 向量差: x-y=x1-y1 x2-y2 x3-y3,向量对应元素的运算,x.*y=x1*y1 x2*y2 x3*y3 (乘积) x./y=x1/y1 x2/y2 x3/y3 (右除,右边的y做分母) x.y=y1/x1 y2/x2 y3/x3 (左除,左边的x做分母) x.5=x15 x25 x35 (乘幂) 2.x=2x1 2x2 2x3 x.y=x1y1 x2y2 x3y3,函数计算,Matlab有许多内部函数,可直接作用于向量产生一个同维的函数向量。 如:x=linspace(0,4*pi,100);(产生100维向量x) y=sin(x); (y也自动为100维向量) y1=sin(x).2; y2=exp(-x).*sin(x); 观察结果,创建矩阵(数值矩阵的创建),直接输入法创建简单矩阵。 A=1 2 3 4; 5 6 7 8; 9 10 11 12 B=-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6 观察运行结果 A = 1 2 3 4 5 6 7 8 9 10 11 12 B = -1.3000 1.7321 2.4000 -0.9589 7.3891 6.0000,矩阵的运算(矩阵的加减、数乘、乘积等),A, A_trans=A H=1 2 3 ; 2 1 0 ; 1 2 3 , K=1 2 3 ; 2 1 0 ; 2 3 1 h_det=det(H), k_det=det(K), H_inv=inv(H), K_inv=K-1,矩阵的运算(左除和右除),左除“ ”: 求矩阵方程AX=B的解;( A 、B的行要保持一致) 解为 X=AB; 当A为方阵且可逆时有X=AB=inv(A)*B; 右除“ / ”: 求矩阵方程XA=B的解 (A 、B的列要保持一致) 解为 X=B/A , 当A为方阵且可逆时有X=B/A=B*inv(A),矩阵的运算(左除和右除),例1:求矩阵方程: 设A、B满足关系式:AB2B+A,求B。 其中A=3 0 1; 1 1 0; 0 1 4。 解:有(A-2I)BA 程序 : A=3 0 1; 1 1 0;0 1 4; B=inv(A-2*eye(3)*A, B=(A-2*eye(3)A 观察结果:,分块矩阵(矩阵的标识),例2 取出A的1、3行和1、3列的交叉处元素构成新矩阵A1。 解:程序 A=1 0 1 1 2;0 1 -1 2 3; 3 0 5 1 0;2 3 1 2 1, vr=1, 3; vc=1, 3; A1=A(vr, vc) 观察结果,分块矩阵(矩阵的标识),例3 将A分为四块,并把它们赋值到矩阵B中,观察运行后的结果。 解:程序 A11=A(1:2,1:2),A12=A(1:2,3:5), A21=A(3:4,1:2),A22=A(3:4,3:5) B=A11 A12; A21 A22 运行结果,分块矩阵(矩阵的修改和提取),例4 (1)修改矩阵A,将它的第1行变为0。 解:程序: A=1 0 1 1 2;0 1 -1 2 3; 3 0 5 1 0;2 3 1 2 1 A(1,:)=0 0 0 0 0; A (2)删除上面矩阵A的第1、3行。 程序: A(1,3,:)= ,生成特殊矩阵,全1阵 ones(n), ones(m,n), ones(size(A) 全零阵: zeros(n) ,zeros(m,n), zeros(size(A) 常常用于对某个矩阵或向量赋0初值 单位阵: eye(n),eye(m,n) 随机阵: rand(m,n), rand(n)=rand(n,n)用于随机模拟,常和rand(seed,k)配合使用。,常用矩阵函数,det(A) : 方阵的行列式; rank(A): 矩阵的秩; eig(A): 方阵的特征值和特征向量; trace(A): 矩阵的迹; rref(A): 初等变换阶梯化矩阵A svd(A): 矩阵奇异值分解。,分块矩阵(矩阵的标识),1. 矩阵元素的标识 : A(i,j)表示矩阵A 的第 i 行 j 列的元素; 2. 向量标识方式 A(vr,vc): vr=i1,i2,ik、vc=j1,j2,ju分别是含有矩阵A的行号和列号的单调向量。 A(vr,vc)是取出矩阵A的第i1,i2,ik行与j1,j2,ju列交叉处的元素所构成新矩阵。,数据的简单分析,1.当数据为行向量或列向量时,函数对整个向量进行计算. 2.当数据为矩阵时,命令对列进行计算,即把每一列数据当成同一变量的不同观察值。 常用的命令: max(求最大)、min(求最小)、mean(求平均值)、sum(求和)、std(求标准差)、cumsum(求累积和)、median(求中值)、diff(差分)、sort(升序排列)、sortrows(行升序排列)等等。,数据的简单分析,例5 观察:生成一个36的随机数矩阵,并将其各列排序、求各列的最大值与各列元素之和。 解:程序sort(使每一列从小到大排序) A=rand(3,6), Asort=sort(A), Amax=max(A), Asum=sum(A) 观察结果,实 验 二,函数可视化与Matlab作图,绘制平面曲线(plot指令),plot(x,y): 以x为横坐标、y为纵坐标绘制二维图形 x,y是同维数的向量; plot(y): 相当于x=1,2,length(y)时情形。,函数的可视化,问:f (x), g (x)是周期函数吗?观察它们的图象。 解:程序 clf, x=linspace(0,8*pi,100); y1=sin(x+cos(x+sin(x); y2=0.2*x+sin(x+cos(x+sin(x); plot(x,y1,k:,x,y2,k-) legend(sin(x+cos(x+sin(x),0.2x+sin(x+cos(x+sin(x),2),例1 令,绘制平面曲线(绘制多个图形),1. plot(x,y1;y2;), x是横坐标向量,y1;y2;是由若干函数的纵坐标拼成的矩阵; 2. plot(x1,y1), hold on, plot(x2,y2), hold off 3. plot(x1,y1,x2,y2,) 4. plotyy 两个坐标系,用于绘制不同尺度的函数。,绘制平面曲线(线型、点形和颜色的控制),plot(x,y,颜色线型点形) plot(x,y,颜色线型点形,x,y,颜色线型点形, ) 句柄图形和set命令改变属性值,可套用: h=plot(x,y), set(h,属性,属性值,属性,属性值,) 或plot(x,y,属性,属性值)设置图形对象的属性。,绘制平面曲线(属性变量和属性值),线宽:LineWidth 点的大小: MarkerSize 线型:LineStyle 颜色:Color,绘制平面曲线(例),程序 h=plot(0:0.1:2*pi,sin(0:0.1:2*pi); set(h,LineWidth,5,color,red); grid on 观察结果,绘制平面曲线(坐标轴的控制),grid on 指令为图形窗口加上网格线 axis指令 axis(xmin xmax ymin ymax): 设定二维图形的x和y坐标的范围; axis(xmin xmax ymin ymax zmin zmax): 设定三维图形的坐标范围 ; 其中xminxxmax, yminyymax , zminzzmax。,绘制平面曲线(文字标注),title(图形标题); xlabel(x轴名称);ylabel(y轴名称);zlabel(z轴名称); text(说明文字):创建说明文字; gtext(说明文字):用鼠标在特定位置输入文字。 文字标注常用符号: pi ();alpha ();beta (); leftarrow(左箭头) rightarrow(右箭头); bullet (点号),图形窗口的创建和分割,subplot(m,n,k)命令 在图形区域中显示多个图形窗口,m为上下分割数,n为左右分割数,k为第k子图编号。 例:将一个图形分为4个子图,在第k个子图画sin(kx) 的图象. 程序: clf,b=2*pi; x=linspace(0,b,50); for k =1:4 y=sin(k * x); subplot(2,2,k),plot(x,y),axis(0,2*pi,-1,1) end,若干有用的指令,clf:清除图形窗口已有的内容. shg:显示图形窗口。 clear、 clear x:清除工作空间的已有变量。 figure(n): 打开第n个图形窗口 help: : 续行号,绘制二元函数z=f(x,y),基本步骤: 1. 生成二维网格点 2. 计算函数在网格点上的值 3. 绘制函数图形,1. meshgrid指令:生成网格点,观察meshgrid指令的效果。 程序: a=-3;b=3;c=-3;d=3;n=10; x=linspace(a,b,n); y=linspace(c,d,n); X,Y=meshgrid(x,y); plot(X,Y,+) 观察结果,2. 计算函数值,如,z=peaks(X,Y);,3. 绘图指令,mesh(X,Y,z) : 在三维空间中绘出由(X,Y,z)表示的曲面; meshz(X,Y,z): 除了具有mesh的功能外,还画出上下高度线, meshc(X,Y,z): 除了具有mesh的功能外,还在曲面的下方画出函数z=f(x,y)的等值线图, surf(X,Y,z): 也是三维绘图指令,与mesh的区别在于mesh绘出彩色的线,surf绘出彩色的面,,三维绘图(等值线指令),contour(X,Y,z,n): n条等高线,n可
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号