数学建模实验教案.docx
《数学建模实验教案.docx》由会员分享,可在线阅读,更多相关《数学建模实验教案.docx(16页珍藏版)》请在冰豆网上搜索。
![数学建模实验教案.docx](https://file1.bdocx.com/fileroot1/2022-11/18/156b5fd6-8b60-44ce-9ff3-b5599eb6f2a5/156b5fd6-8b60-44ce-9ff3-b5599eb6f2a51.gif)
数学建模实验教案
《数学实验》
第一讲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:
曲线和曲面的简单画法