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是单位矩阵,32O是零矩阵,23R是随机矩阵,011022S,J是2阶全1矩阵,验证BA2。
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(22xxxxy(使用plot和fplot两种方法),相应于
2,5.1,1,5.0,0,5.0,1,5.1,2x的曲线上的点用红色空心圆点标出
(2) 三条曲线画在一幅图上:)0(,sin,3sinsin,sinxxyxxyxy,
10 每条曲线加注标记区分;
(3) 空间曲线 20,2cos,cos,sinttztytx;
(4) 椭圆 19422yx(使用两种方法)。
2、画出下列曲面图形
(1) 旋转抛物面 3,3,22yxyxz;
(2) 曲面 132,33,622232224yxyxyxyxxz;
(3) 一幅图上同时画上半球面4222zyx与柱面1)1(22yx)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,nnnaM1lim,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