数学建模实验教案.docx
- 文档编号:27964875
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:18
- 大小:224.04KB
数学建模实验教案.docx
《数学建模实验教案.docx》由会员分享,可在线阅读,更多相关《数学建模实验教案.docx(18页珍藏版)》请在冰豆网上搜索。
数学建模实验教案
《数学实验》
第一讲MATLAB简介
⒈MATLAB软件的界面风格,常用的窗口命令和菜单选项
界面风格(略)
常用的窗口命令和菜单选项:
clc:
清除命令窗口中显示内存
clf:
清除图形窗口
clear:
清除内存中的变量
who,whos:
列出内存中的变量(以及属性)
help:
edit:
format[,long,short,lnge,shorte,shortg,]:
定义输出格式
菜单选项:
主要介绍file,edit,windows,help四个菜单
⒉变量的命名,基本运算,常用的函数
变量名的第一个字符必须是英文字母,最多可达31个字符;变量名中不能含有空格和标点符号;变量名和函数名对字母的大小写是由区别的。
变量名和函数名不得使用以下的预定义变量:
ans,eps,Flops,Inf,inf,pi,NaN,nan,nargin,nargout,realmax
基本运算:
“+”:
加法;“-”:
减法;:
“*”:
乘法;“/或\”:
除法;
“^”:
乘幂
例如:
3/4,3\4,3^4,4^3
常用函数:
例如x=12;
c=round((cos(x)/log(x))^2+atan(x));
⒊标点符号的使用,数组和矩阵的生成以及运算
标点符号:
“空格和逗号”:
输入量与输入量,数组元素之间的分隔符。
“句号”:
数值运算中的小数点。
“分号”:
不显示运算结果,也是数组行与行的分隔符。
“冒号”:
缺省标志,表示全部。
“%”:
由它起始的行为注释行。
“‘’”:
字符串标记。
“[]”:
输入数组标记。
例如a=4*2+2^5;
b=[12;3,5.1]
c=’sin(2*pi*x)+ceil(-1.28)’
%d=a+b+c
e=b(1,:
);f=b(:
2);g=b(:
)
数组和矩阵的生成以及调用:
⑴一维数组
生成方式有两种:
①x=[12*pisin(pi/2);-4,5.1,3.5]
②x=a:
step:
b请学生尝试改变a,bstep的值,看看结果如何。
调用:
x(i):
调用数组的第i个元素
rand(k,l):
产生一个k×l的随机数组
x(1:
3)=[123]:
给数组的前三个元素赋值
a=x(3:
-1:
1):
将数组的前三个元素倒序后生成一个新的数组
find(x>1):
找出数组x的大于1的元素的下标
x(find(x>1)):
由数组x的大于1的元素构成一个子数组并保持原来的顺序
⑵二维数组
生成方式与一维数组相同,只是行与行之间必须以分号隔开
调用:
a(I,j):
表示a的第i行第j列元素
a(I,:
):
第i行的所有元素
a(:
j):
第j列的所有元素
a(:
):
a的所有元素
a(k):
a的第k个元素,按列数
⑶特殊数组
eye(n,n):
生成n维单位矩阵
ones(m,n):
生成全是1的矩阵
zeros(m,n):
生成全是0的矩阵
rand(m,n):
生成m行n列的随机矩阵
randn(m,n):
生成正态分布的m行n列的随机矩阵
diag(a):
提取a的对角线向量或者以向量a为对角线形成一个对角矩阵
数组和矩阵的运算:
a+b:
对应元素相加;a-b:
对应元素相减
a*b:
矩阵相乘;a.*b:
对应元素相乘
a/b:
a右乘b的逆;a./b:
a的元素除以b的对应元素
a\b:
与上面类似;a.\b:
与上面类似
a’:
转置
a^x:
矩阵的幂;a.^x:
矩阵元素的幂
x+a:
标量x与矩阵a的元素相加
x*a:
标量x与矩阵a的元素相乘
inv(a):
矩阵a的逆
例如a=eye(3,3);b=a+4.1;a(2,3)=-2;a’;inv(a)
a.*b,a*b;b./ab/aa^2
⒋脚本文件的生成和运行
脚本文件的编辑环境:
⑴在MATLAB的命令窗口输入edit
⑵在MATLAB的file选项中选择
new---M-file
运行:
只需在命令窗口中输入M文件的名字即可
在M文件的编辑中,只需将相关命令依次输入,然后保存即可
例⒈建立一个名为examp的M文件,用于计算n!
jirguo=1;
fori=1:
njieguo=jieguo*I;
end
jieguo
例⒉已知函数
求
,
,
y=0;
ifx<0
;
elseifx
1
;
else
;
endy
作业:
1.将任意一个自然数反序
2.输入一个n阶方阵并求它的逆
3.输入一个数组,求出其中所有大于1.5的元素之和
4.建立一个m文件用于计算
第二讲利用MATLAB加深对微积分中的基本概念的理解
1.极限与间断点
极限
limit(f,x,a):
求函数f(x)在x趋于a时的极限
limit(f,x,a,’left’):
求函数f(x)在x趋于a时的左极限
limit(f,x,a,’right’):
求函数f(x)在x趋于a时的右极限
例题1.
命令limit((x-sin(x))/(x^3),x,0)
例题2.
命令limit(((x+3)/(x+2))^x,x,inf)
例题3.观察函数
在
时的极限过程
x=1:
-0.01:
0;
y=cos(1/x);
plot(x,y)
例题4.
symsx
limit((cos(x)-exp(-x^2/2))/(x^4),x,0)
例题5.
symsn
limit(1/(log(log(n)))^log(n),n,inf)
例题6.观察函数
的图像,理解可去间断点,无穷间断点以及跳跃间断点的概念
x1=-2:
0.01:
0.5;
x2=0.51:
0.01:
1
y1=sin(x)/(x*(x+1));
y2=x2;
x=[x1,x2];
y=[y1,y2];
plot(x,y)
2.无穷大量与无界函数
例题7.观察函数
在
时的极限过程,理解无穷大量与无界函数的区别
x=1:
-0.01:
0;
y=(1/x)*cos(1/x);
plot(x,y)
3.函数的导数和积分
导数
diff(f,x,n):
函数对x求n阶导数
例题8.求函数
的一阶和二阶导数
symsx
y=’exp(2*x)*log(x^2+1)*tan(-x)’;
diff(y,x)
diff((diff(y,x),x)
diff(y,x,2)
观察一下后两个命令的运算结果
例题9.
求y的一阶和三阶导数
symsx
f=‘exp(x^2)*cos(x)/log(1+x^2)';
diff(f,x)
diff(f,x,3)
例题10.
求
symsx
symsy
z='log(x^2+y^2)/atan(y/x)';
diff(z,x)
diff(diff(z,x),y)
积分
int(f,v):
求函数f对变量v的不定积分
int(f,v,a,b):
求函数f对变量v在区间[a,b]上的定积分
以上两个函数中当v缺省时,表示对符号变量的积分
例题11.
symsx;
y='x*log(1+x^2)';
int(y,x)
例题12.
symsx;
y='x^3/(x^4+2*x^2+1)';
int(y,x,0,5)
例题13.
symsxy;
f='x*sin(x)';
int(int(f,x,y,sqrt(y)),y,0,1)
例题14.求函数
和
的不定积分
symsx
f1=’x*exp(-x^2/2)’;
f2=’1/(x*sqrt(1+x^2))’;
int(f1,x)
int(f2)
例题15.求下列定积分
和
symsx
y1=’1/sqrt(1+x^2)’
y2=’(sin(x))^3/((1+(sin(x))^4)*tan(x))’
int(y1,x,0,1)
int(y2,x,0,pi/4)
4.解方程
例题16.求方程
在0到1之间的根
f=inline(‘x^3+x-1’)
x=fzero(f,[0,1])
x=fzero(f,0.5)
例题17.求微分方程
满足
的特解
dsolve(‘d2y=1+dy’,’y(0)=1’,’dy(0)=0’)
第三讲极坐标以及函数的图像函数图像的描绘
⒈极坐标的定义和点的坐标,点的极坐标和直角坐标之间的联系
其中
沿逆时针旋转时为正,沿顺时针旋转时为负,
⒉极坐标下常见曲线的方程
圆
圆锥曲线,包括椭圆,双曲线,抛物线的极坐标方程是
是离心率,
是左焦点与左准线之间的距离,极坐标的极点在左焦点
心形线
阿基米德螺线
双纽线
⒊极坐标曲线图像的描绘
xx_theta=0:
0.1:
2*pi;
xx_rou=4*(1+cos(xx_theta));
ajmd_theta=0:
0.1:
8*pi;
ajmd_rou=2*ajmd_theta;
sn_theta=0:
0.1:
2*pi;
sn_rou=8*cos(2*sn_theta);
c=find(sn_rou<0);
sn_rou(c)=0;
subplot(1,3,1)
polar(xx_theta,xx_rou)
subplot(1,3,2)
polar(ajmd_theta,ajmd_rou)
subplot(1,3,3)
polar(sn_theta,sn_rou)
4.MATLAB中的几个绘制函数图像的命令
plot(x,y,’s’):
x,y为实向量,x为横坐标,y为纵坐标,s是可选参数,用来指定曲线的线形,颜色,数据点的形状等。
当x,y之中至少有一个是矩阵时,可以绘制多条曲线。
polar(theta,rou):
用于绘制极坐标曲线
ezplot(f,[a,b]):
用于绘制函数f在区间[a,b]上的曲线,该命令还可用于绘制隐函数
的图像,具体命令格式为:
ezplot(‘f’,[xmin,xmax,ymin,ymax])
plot3(x,y,z,’s’):
用法与plot完全相同,用于绘制三维曲线
grid:
在地层绘制三维网格
meshgrid(x,y):
用向量x,y产生一个格点矩阵
mesh(x,y,z,’s’):
绘制网线图,它的两个同种函数
meshc:
画网格图和基本的等值线图
meshz:
画含零平面的网格图
surf(x,y,z,’s’):
绘制曲面图,它的两个同种函数
surfc:
画出具有等值线的曲面图
surfl:
画出一个有亮度的曲面图
holdon(off):
保持或不保持屏幕,用于将两个图形重叠画出
shadingflat:
各个曲面块之间平滑加色彩,连接处的黑线已被去掉
shadinginterp:
插值加色彩
title(‘sssssss’):
加台头
xlable(‘xx’):
xx是x轴的说明,同理,还有y,z轴的说明
ezmesh,ezsurf:
曲线和曲面的简单画法
grid,title,轴说明等必须放在画图语句之后。
5.举例
例1.
x=-1:
0.1:
5;
y=exp(x)+sin(x.^2-1);
plot(x,y)
例2.画出函数
的图像
t=-0.9:
0.1:
5;
x=t.^2;
y=exp(t);
z=log(1+t);
plot3(x,y,z)
grid,xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis')
例3.画出隐函数
的图像
ezplot('exp(y+x)-x.*y-1',[-10,10,-10,10])
例4.画出曲面在z=xy的图像
x=-5:
0.1:
5;
y=-5:
0.1:
5;
[xb,yb]=meshgrid(x,y);
zb=xb.*yb;
subplot(1,2,1)
mesh(xb,yb,zb)
view(-100,20)
subplot(1,2,2)%定义子图
surf(xb,yb,zb)
view(-100,20)%改变视角
例5.各种效果图
[X,Y,Z]=peaks(50);
subplot(2,2,1)
meshc(X,Y,Z)
grid,xlabel(‘X-axis’),ylabel(‘Y-axis’),zlabel(‘Z-axis’)
title(‘peak’)
subplot(2,2,2)
meshz(X,Y,Z)
grid,xlabel(‘X-axis’),ylabel(‘Y-axis’),zlabel(‘Z-axis’)
title(‘peak’)
subplot(2,2,3)
surfc(X,Y,Z)
grid,xlabel(‘X-axis’),ylabel(‘Y-axis’),zlabel(‘Z-axis’)
title(‘peak’)
subplot(2,2,4)
surfl(X,Y,Z)
grid,xlabel(‘X-axis’),ylabel(‘Y-axis’),zlabel(‘Z-axis’)
title(‘peak’)
例6.用平行截面法研究马鞍面
x=-4:
0.1:
4;
y=x;
[mx,my]=meshgrid(x,y);
mz=mx.^2-my.^2;
ix=find(mx==2);
px=2*ones(1,length(ix));
py=my(ix);
pz=mz(ix);
subplot(1,2,1)
holdon
mesh(mx,my,mz)
view(-60,30)
plot3(px,py,pz)
subplot(1,2,2)
plot3(px,py,pz)
例7.绘制旋转抛物面
的图形
x=-2:
0.1:
2;
y=x;
[xx,yy]=meshgrid(x,y);
zz=xx.^2+yy.^2;
ii=find(xx.^2+yy.^2>4);
zz(ii)=nan;
surfl(xx,yy,zz)
shadinginterp
colormappink
例8.绘制封闭曲面,由旋转抛物面
与平面
围成
x=-2:
0.1:
2;
y=x;
[xx,yy]=meshgrid(x,y);
z=4*ones(size(xx));
zz=xx.^2+yy.^2;
ii=find(xx.^2+yy.^2>4);
zz(ii)=nan;
z(ii)=nan;
holdon
view(-37.5,30)
surf(xx,yy,zz)
mesh(xx,yy,z)
例9.绘制上例中的立体的投影图
x=-2:
0.1:
2;
y=x;
[xx,yy]=meshgrid(x,y);
z=4*ones(size(xx));
zz=xx.^2+yy.^2;
ii=find(xx.^2+yy.^2>4);
zz(ii)=nan;
z(ii)=nan;
holdon
subplot(1,2,1)
surf(xx,yy,zz)
mesh(xx,yy,z)
axisequal
view([0,0,1])
subplot(1,2,2)
surf(xx,yy,zz)
mesh(xx,yy,z)
axisequal
view(60,0)
从中可以看出,仅仅是视角发生了变化
作业:
在同一坐标系下绘制曲面
被
截得的部分曲面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 实验 教案