MATLAB数学建模教程

  • 格式:doc
  • 大小:320.00 KB
  • 文档页数:38

1 MATLAB选修课讲义

第一讲:矩阵运算

第二讲:函数作图

第三讲:符号演算

第四讲:简单编程

第五讲:数值计算

第六讲:综合实例

2 第一讲:矩阵运算

1. 基本操作

启动 退出 终止(Alt+. 或Ctrl +C)

翻页 召回命令

分隔符 , 禁显符 ; 续行符 … 注释符 %

设置显示格式 format 常用:short, short g, long

清除变量 clear

关闭图形 close

清除图形 clf

演示 Demo

帮助 help

2. 基本常数

3 pi I j inf eps NaN exp(1)

3. 算术运算

+ - * /, \, ^ sqrt .* ./ .^

4. 内部函数(一般都有数组运算功能)

sin(x) tan(x) asin(x) atan(x)

abs(x) round(x) floor(x) ceil(x)

log(x) log10(x) length(v) size(A)

sign(x) [y, p]=sort(x)

5. 矩阵运算(要熟练掌握)

(1) 矩阵生成:

手工输入: [1 2 3; 4 5 6]

输入数组: linspace(a, b, n)

命令输入: zeros(m,n) ones(m,n) eye(n)

4 magic(n) rand(m, n)

diag(A) diag ( [a11 a22 . . . ann] )

(2) 矩阵操作

赋值 A(i, j) =2 A(2, :)=[1 2 3]

删除 A( [2,3], :)=[ ] 添加A(6,8)=5

定位 find(A>0) 定位赋值A(A<0)= -1

由旧得新 B=A([2,3,1], :) B=A([1,3],[2,1])

定位矩阵 B=(A>1) B=(A==1)

下三角阵 tril(A) 上三角阵 triu(A)

左右翻转 fliplr(A) 上下翻转 flipud(A)

重排矩阵 reshape(A, m, n)

(3) 矩阵运算:

转置 A’ 和A+B 差 A-B 积A*B

5 左除A\b(=A-1 b) 右除b/A(=b A-1 ) 幂 A^k

点乘A.*B 点除A./B 点幂A.^2

行列式det(A) 数量积dot(a,b) 向量积cross(a,b)

行最简形rref(A) 逆矩阵inv(A) 迹trace(A)

矩阵秩 rank(A) 特征值eig(A) 基础解系null(A,’r’)

方程组特解x=A\b

注意:2+A, sin(A)

练习一:矩阵操作

1、用尽可能简单的方法生成下列矩阵:

6 102000100012101/21/31/1112040022002311/31/41/12,,,0330600054082210010191/111/121/20000750

2、设有分块矩阵2232233SOREA,23222233EOJREB,其中23,EE是单位矩阵,32O是零矩阵,23R是随机矩阵,011022S,J是2阶全1矩阵,验证BA2。

3、求下列线性方程组的通解:

12341241234224239577xxxxxxxxxxx

Ax=b, A=[1 2 1 -2;2 3 0 -1;1 -1 -5 7]; b=[4 9 7]’;

7 4、求矩阵B=[1 -2 3;3 -1 5;2 1 -2]的特征值和特征向量.

第二讲:函数作图

1、 画曲线

◆ 平面曲线

(1)描点作图

x=1:0.2:6; y=x.*sin(x); 必须用点运算产生数组

plot(x,y,’ro’, x, x.*x, ‘b:’ ) 横坐标、纵坐标点数必须相等

figure 打开一幅画面

subplot(1,2,1) 大画面中划分几个小画面

(2) 函数作图

8 fplot('[tan(x),sin(x),cos(x)]',[-6 6 -6 6])

subplot(2,2,4),

fplot('sin(1 ./ x)', [0.01 0.1], 1e-3)

(3) 符号作图

显函数 ezplot('cos(x)', [0, 2*pi])

隐函数 ezplot('1/y-log(y)+log(-1+y)+x - 1')

参数式 ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0, pi])

◆ 空间曲线

(1) 描点作图

t=linspace(0,4 *pi, 40); x=cos(t); y=t.*sin(t); z=2*t;

plot3(x,y,z)

(2) 符号作图

参数式 ezplot3('cos(t)', 't * sin(t)', 'sqrt(t)', [0,6*pi])

9

2、画曲面

◆x=-8:0.1:8; y=x;

[X,Y]=meshgrid(x,y); z=X.^2/16-Y.^2/9;

mesh(x,y,z); surf(x,y,z)

◆ezmesh( 'x*exp(-x^2 - y^2)' )

ezsurf( 'exp(-s)*cos(t)', 'exp(-s)*sin(t)', 't', [0,8,0,4*pi] )

练习二:函数作图

1、 画出下列函数表示的曲线:

(1) 22),2sin(22xxxxy(使用plot和fplot两种方法),相应于

2,5.1,1,5.0,0,5.0,1,5.1,2x的曲线上的点用红色空心圆点标出

(2) 三条曲线画在一幅图上:)0(,sin,3sinsin,sinxxyxxyxy,

10 每条曲线加注标记区分;

(3) 空间曲线 20,2cos,cos,sinttztytx;

(4) 椭圆 19422yx(使用两种方法)。

2、画出下列曲面图形

(1) 旋转抛物面 3,3,22yxyxz;

(2) 曲面 132,33,622232224yxyxyxyxxz;

(3) 一幅图上同时画上半球面4222zyx与柱面1)1(22yx)20(z;

(4) * 试画曲面)2/sin(,sin3),2/cos(cos3tuztytutx,)11,20(ut,

这是什么曲面?

第三讲:符号演算

11 符号演算:

1、定义符号变量 syms a b x y

2、求极限 limit(f,x,a)

3、求导数 diff(f,x,n)

4、求积分 int(f,x) int(f,a,b)

5、级数展开 taylor(f,n,x,x0)

6、求和 symsum(f,k,n1,n2)

7、代数方程求根 solve(f1,f2)

8、微分方程求解 dsolve

9、代入 subs(f,x,a)

10、化简 simplify simple

11、显示数据 vpa(x,n)

12 练习三:符号运算

用MATLAB符号运算做下列各题

1、 求极限 hxhxLh)ln()ln(lim0,nnnaM1lim,1/0(1)limxxexPx

2、 求和 nkkS121,1221kkS,23)1(nnnnxS

3、 )ln(22xaxy求导数)5(y并化简、求偏导数 )3,1,1(223)sin(yzxyx

4、 求不定积分 xxxxId)22(1222 ,)()lnln(dbaxbxaxxJ

5、 求定积分 0d2xeIx,含参积分xxyyxyxxId)2sin()()(3

6、 试求正弦函数xysin的n次麦克劳林展开式)11,9,7,5,3(n,在同一幅图上画出正弦函

13 数以及它的n次麦克劳林多项式的图像,观察逼近情况。

7、 试求方程或方程组的解:

(1) 3243210xxx (2) 222,.xyabxyab

8、 试解常微分方程:

(1).0)2/π(,sin'xtxx (2).0)π/a(,1)0(,''2yyyay (3)1)0(,0)0(,','yxxyyx,yx,是t的函数。

第四讲:简单编程

一、M-文件

14 脚本文件 语句(命令)汇集,不调用参数

函数文件 调用参数

function z=wang1(x,y)

z=x.^3+y.^3-3*x.*y

二、定义函数

1.内联函数:fun=inline(‘x.^2.*sin(x*y)’,’x’,’y’) 简单

2.匿名函数:fun=@(x,y) x.^2.*sin(x*y) 可以带参数

3.M—文件:function z=fun(x,y) 功能多

z= x.^2.*sin(x*y)

三、编程初步:三种结构

(1) 顺序结构

(2) 循环结构

◆ for k=array