高等数学综合实验指导书

更新时间:2023-10-22 06:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Matlab 语言应用实验指导书

一、 实验的目的

为了使学生更好地理解Matlab的应用价值,培养程序设计的兴趣,提高学生利用计算机进行探究的综合能力,综合运用高等数学计算机程序设计和专业知识,结合本专业特点和研究方向,开展的实验活动。以科学性、系统性、细致性和创新性等指标作为实验的评价标准。

二、 实验的步骤

1、明确课题的内容和要求;

2、收集研究相关数学和实际问题的资料; 3、提出必要的假设,建立数学模型; 4、进行程序设计,上机实验;

5、针对实验效果进行必要的修改或调整; 6、记录实验过程,写出实验报告.

三、 实验的要求

1、认真领会课题的研究内容和目标要求; 2、要求学生每天上机时间不得少于4学时;

3、要做好必要的资料收集,课题的定量分析和建立数学模型等上机准备工

作;

4、要能够综合运用高等数学知识,编写应用程序经历完整的数学实验过程; 5、准确记录程序调试和实验过程中出现的问题和解决的办法; 6、实验报告详略得当,书写规范。

四、 实验的数学知识基础

数学建模知识:数学建模的概念是指特定的客观对象建立数学模型的过程,是现实的现象通过心智活动构造出能抓住其重要且有用的特征的表示,常常是形象化的或符号的表示,是构造刻画客观事物原型的数学模型并用以分析、研究和解决实际问题的一种科学方法。

数学建模试验的基本过程:

? 模型准备 :了解问题的实际背景,明确其实际意义,掌握对象的各种信

息。用数学语言来描述问题。 ? 模型假设 :根据实际对象的特征和建模的目的,对问题进行必要的简化,

并用精确的语言提出一些恰当的假设。 ? 模型建立 :在假设的基础上,利用适当的数学工具来刻划各变量之间的

数学关系,建立相应的数学结构。(尽量用简单的数学工具)

? 模型求解 :利用获取的数据资料,对模型的所有参数做出计算(估计)。 ? 模型分析 :对所得的结果进行数学上的分析。 ? 模型检验 :将模型分析结果与实际情形进行比较,以此来验证模型的准

确性、合理性和适用性。如果模型与实际较吻合,则要对计算结果给出其实际含义,并进行解释。如果模型与实际吻合较差,则应该修改假设,

47

在次重复建模过程。

? 模型应用 :应用方式因问题的性质和建模的目的而异。

五、 Matlab软件基础知识: 1、特殊变量 变量名称 含义 ans 最近生成的默认变量名 pi 圆周率 eps 计算机的最小数 inf 无穷大 NaN 不定量(如0/0) i或j 虚数单位?1 realmin realmax nargin nargout 最小可用正实数 最大可用正实数 函数输入参数的个数 函数输出参数的个数

2、变量管理命令 命令 功能 clear(变量名) 清除工作空间指定变量 clear 清除工作空间所有变量 save ss 将工作空间变量保存在ss.mat文件中 save ss x y 选择工作空间变量保存在ss.mat文件中 load ss 将ss.mat文件中的所有变量装入工作空间 load ss x 将ss.mat文件中的变量x装入工作空间 who 列出当前工作空间的变量名 whos 列出当前工作空间的变量及相关信息

3、一维数组 一维数组的创建 方法 命令格式 功能 逐个元素[a b c] 数组(a,b,c) 赋值法 定数线性linspace(a,b) 将区间[a,b]用100个点等分所得的采样法 数组 定数线性linspace(a,b,n) 将区间[a,b]用n个点等分所得的数采样法 组 冒号生成a:h:b 以a为起点b为终点,h是步长的数法 组,当h=1时可省略

47

一维数组的访问格式 格式 功能 x(n) 访问x的第n个元素 x(n:h:m) 访问x的第n,n+h,…,m个位置的元素 x([n k m]) 访问x的第n,k, m个位置的元素 ?256??3?12??24?例1创建矩阵C???,D??061?,F??57?, 789??????①将矩阵C,D,F保存到同一文件中,并将C,D保存到mat文件中; ②清除工作空间所有变量,重新将C,D调入工作空间。 解:打开m文件编辑器编写li13_2文件 程 序 运 行 结 果 C=[2 5 6; 7 8 9] C = D=[3 -1 2;0 6 1] 2 5 6 F=[2 4;5 7] 7 8 9 save li13_2CD D = 在命令窗口分别键入以下四个指 3 -1 2 令,查看保存结果。 0 6 1 >> clear >> load li3_2CD >> C >> D

4、常用的数学函数 函功能 函数 功能 函数 功能 函数 功能 数 sin 正弦 asin 反正弦 sinh 双曲正弦 asinh 反双曲正弦 cos 余弦 acos 反余弦 cosh 双曲余弦 acosh 反双曲余弦 tan 正切 atan 反正切 tanh 双曲正切 atanh 反双曲正切 cot 余切 acot 反余切 coth 双曲余切 acoth 反双曲余切 sec 正割 asec 反正割 sech 双曲正割 asech 反双曲正割 csc 余割 acsc 反余割 csch 双曲余割 acsch 反双曲余割 exp 指数 log 自然对数 log10 常用对数 log2 2为底对数 sqrt 平方根 abs 模或绝对值 fix 对零方向取整 sign 符号函数 例2 创建向量x=(1 3 5 7 9) 程 序 运 行 结 果 x=1:2:9; x = x=linspace(1,9,5) 1 3 5 7 9 例3 访问x=(5 -2 0 3 6 7 8 -1)的第7个元素,第2,4,6个元素,第8,5,2个

47

元素,第3,8个元素 程 序 x=[5 -2 0 3 6 7 8 -1];a=x(7) b=x(2:2:6) c=x(8:-3:2) d=x([3 8]) 运 行 结 果 a =8 b = -2 3 7 c = -1 6 -2 d = 0 -1 例4 一维数组a=(4,1,16,25,0,-1,9),计算a(i),要求①删除不能开平方的元素及其后的元素②删除不能开平方的元素。 程 序 运 行 结 果 a=[4 1 16 25 0 -1 9]; b1 = b1=[]; 2 1 4 5 0 for k=1:7 if a(k)<0 break end b1=[b1 sqrt(a(k))]; end b2=[]; for k=1:7 b2 = if a(k)<0 2 1 4 5 0 continue 3 end b2=[b2 sqrt(a(k))]; end

5、创建符号变量 函数 功能 sym(‘arg’) 创建单个符号变量 sym arg1 arg2…argn 创建多个符号变量

确认自由变量 函数 功能 findsym(f) 确定表达式f中的所有自由符号变量 findsym(f,n) 确定表达式f中靠x最近的n个自由符号变量,当指定n=1时,如果有2个字母与x的距离相等,则取较厚的一个。

6、符号表达式的运算 复合函数运算 函数 功能 compose(f,g) 返回复合函数f(g(x))

47

例5创建符号变量a,b,c。 程 序 a=sym('a') b=sym('b') c=sym('c') A=sym('[a,b,c]')

运 行 结 果 a =a b =b c =c A =[ a, b, c] 例6创建符号表达式,定义符号表达式f?eyx。

程 序 syms x y f=exp(y/x)

例7确定符号表达式f?ax?ny2?my?w中的自变量。 程 序 f=sym('a*x+n*y^2+m*y+w') a=findsym(f) b=findsym(f,1) c=findsym(f,2) d=findsym(f,3) 运 行 结 果 f =a*x+n*y^2+m*y+w a =a, m, n, w, x, y b =x c =x,y s =x,y,w f = exp(y/x) 运 行 结 果

例8已知f=sinu,g=x2,求f(g(x)) 程 序 运 行 结 果 f=sym('sin(u)'); ans = g=sym('x^2'); sin(x^2) compose(f,g)

反函数运算 函数 功能 finverse(f) 默认反函数自变量为x finverse(f,t) 指定反函数自变量为t

7、符号与数值的转换

符号表达式转换为数值表达式 函数 功能 double(s) 将符号变量s转化为双精度的数值变量 digits(n) 设置有效数字个数为n vpa(s,n) 对字符变量s求n位精度的数值解(符号型)

47

ezcontourf(z,[-pi/2,pi/2]) 例29绘制多峰函数z?3?1?x?e2?x2??y?1?21??x?1?2?y2?x35??x2?y2,在?10??x?y?e?e53??x????,??,y????,??上的图形以及二维等高线、二维填充等高线和三维等高线

的图形。

程 序 x=linspace(-pi,pi,50); [X,Y]=meshgrid(x); Z=3.*(1-X).^2.*exp(-X.^2-(Y+1).^2)-10*(X./5-X.^3-Y.^5).*exp(-X.^2-Y.^2)... -1/3.*exp(-(X+1).^2-Y.^2); figure(1) surf(X,Y,Z) title('多峰函数')

程 序 figure(2) c=contour(X,Y,Z,8); clabel(c) title('多峰函数标注高度的二维等高线') 运 行 结 果 运 行 结 果 程 序 figure(3) contourf(X,Y,Z,12) title('多峰函数的二维等高线') 47

运 行 结 果

程 序 figure(4) contour3(X,Y,Z,16) grid off title('多峰函数的三维等高线') 运 行 结 果

16、多元函数z=f(x1,x2,…,xn)的偏导数 函数 功能 diff(z,xi) 求函数z对xi的偏导数 diff(z,xi,n) 求函数z对xi的n阶偏导数 diff(diff(z,xi), xj) 求函数z先对xi再对xj的二阶混合偏导数

?2z?2z?2z例30设z=x+y-4xy,求2,2,。

?x?y?x?y4

4

22

程 序 syms x y z=x^4+y^4-4*x^2*y^2; zxx=diff(z,x,2) zyy=diff(z,y,2) zxy=diff(diff(z,x),y) zxx = 12*x^2-8*y^2 zyy = 12*y^2-8*x^2 zxy = -16*x*y 运 行 结 果

17、二元函数的极值 函数 功能 [x,fmin]=fminsearch(f,x0) 单纯形法,以x0为初始搜索点,x是极小值点,fmin是极小值 [x,fmin]=fminunc(f, x0) 拟牛顿法

例31求函数f=x3-y3+3x2+3y2-9x的极值 程 序 运 行 结 果 [X,Y]=meshgrid(-4:0.5:4); x1 =1.0000 0.0000 f=X.^3-Y.^3+3*X.^2+3*Y.^2-9*f1min = -5.0000 X; x2 =-3.0000 2.0000 surf(X,Y,f) f2min =-31.0000 f1='x(1)^3-x(2)^3+3*x(1)^2+3*fmax = 31.0000 x(2)^2-9*x(1)'; [x1,f1min]=fminsearch(f1,[2,0]) 47

f2='-x(1)^3+x(2)^3-3*x(1)^2-3*x(2)^2+9*x(1)'; [x2,f2min]=fminsearch(f2,[-2,3]) fmax=-f2min

18、梯度 函数 [Fx,Fy]=gradiend(F,h) quiver(x,y,u,v,s) 功能 求二元函数的梯度 说明 F是函数的数值矩阵,h是步长,默认值为1 在xOy平面上画(u,v)表示S是箭头的长度 的箭头

例32(1)绘制曲面z=x2+y2的图形和等高线的图形;(2)绘制梯度的图形;(3)绘制从点(1,2)出发的梯度线;(4)将等高线、梯度、梯度线绘制在同一图形窗口。

解:用等长的折线段来模拟梯度线。设步长t,从点pk(xk,yk)出发,沿梯度方向前进t得到点Pk+1(xk+1,yk+1),即

??xk?1?xk?fk?xk,yk?t?k?0,1,2...?连接P0,P1,P2,…,即得梯度线的图形。 ???yk?1?yk?fy?xk,yk?t① 绘制曲面与等高线 程序:

[X,Y]=meshgrid(-6:0.5:6); Z=X.^2-Y.^2; subplot(2,2,1) surfc(Z)

② 绘制梯度的图形程序: 程序:

[FX,FY]=gradient(Z,0.5); subplot(2,2,2)

quiver(X,Y,FX,FY,0.8)

③ 绘制从点(1,2)出发的梯度线 程序:

subplot(2,2,3) syms x y f=x^2-y^2;

fd=[diff(f,x) diff(f,y)]; t=0.025;

x0=ones(1,100); y0=x0*2; for i=1:100

47

fd0=subs(fd,{x,y},{x0(i),y0(i)});

x0(i+1)=x0(i)+fd0(1)/sqrt(fd0(1)^2+fd0(2)^2)*t; y0(i+1)=y0(i)+fd0(2)/sqrt(fd0(1)^2+fd0(2)^2)*t; end

plot(x0,y0)

④ 将等高线、梯度、梯度线绘制在同一图形窗口 程序:

subplot(2,2,4)

plot(x0,y0,'r',x0(1),y0(1),'r*') hold on

contour(X,Y,Z,10,'b') hold on

quiver(X,Y,FX,FY,0.9) hold off

运行结果为:

19、重积分的计算 表达式 ??f?x,y?d? D命令 int(int(f,y,ymin,ymax),x,xmin,xmax) int(int(int(f,z,zmin,zmax),y,ymin,ymax),x,xmin,xmax) ???f?x,y,z?dv ?

例33计算??xyd?其中D是由抛物线y2=x及直线y=x-2所围成的闭区域。

D程 序 syms x y F1=y^2-x; F2=y-(x-2); s=solve(F1,F2); s0=double([s.x s.y]) ezplot(F1,[0,4,-1,2]) hold on ezplot(F2,[0,4,-1,2]); 47 运 行 结 果 s0 = 4 2 1 -1 I1 = 45/8 I2 = 45/8

hold off I1=int(int(x*y,y^2,y+2),y,-1,2) I2=int(int(x*y,y,-sqrt(x),sqrt(x)),x,0,1)+int(int(x*y,y,x-2,sqrt(x)),... x,1,4)//先y后x

例34利用柱面坐标计算三重积分???zdxdydz其中?是由曲面z=x2+y2与平面

?z=4所围成的闭区间。

程 序 syms r t z x=r*cos(t); y=r*sin(t); z1=4+0*r+0*t; subplot(1,2,1) ezsurf(x,y,z1,[0,2,0,2*pi]) hold on z2=r^2; ezsurf(x,y,z2,[0,2,0,2*pi]) hold off subplot(1,2,2) ezsurf(x,y,z1,[0,2,0,2*pi]) hold on ezsurf(x,y,z1,[0,2,0,2*pi]) view(0,90) hold off I=int(int(int(z*r,z,z2,4),r,0,2),t,0,2*pi)

20、级数求和 函数 symsum(s) symsum(s,v) symsum(s,a,b) symsum(s,v,a,b)

n?1运 行 结 果 I = 64/3*pi 功能 关于默认变量(比如k)对通项从0到k-1项求和 关于指定变量v对通项s从0到k-1项求和 关于默认变量从a到b取值时,对通项s求和 关于变量v从a变化到b时,对通项s求和 10nn例35求s1??,s2??

n?0kk?1k47

n=0:0.1:15 %绘出AA基因型曲线图 y= 1/2+1/8-1/4*(1/2).^(n+1) subplot(2,2,1) plot(n,y)

n=0:0.1:15 %绘出aa基因型曲线图 y=1/4+1/8-1/4*(1/2).^n subplot(2,2,2) plot(n,y) 假设二 不同基因组合

d=[1/2 0 0;1/2 1/2 1;0 1/2 0]

c=[1;0;0]

[v,u]=eig(d) %求解矩阵的特征值及特征向量 for n=0:15 %利用循环作趋向于无穷大 b=v*u.^n*inv(v)

end

b*c %若干年后基因分布

假设三 AA型与其他基因组合

a=[1 1/2 0;0 1/2 1;0 0 0] c=[ 1;0;0]

[v,u]=eig(a) %求解矩阵的特征值及特征向量 for n=0:15 %利用循环作趋向于无穷大 b= v*u.^n*inv(v) end

b*c %若干年后基因分布 n=0:0.1:15 %绘出AA基因型曲线图 y= 1-(1/2).^n-(1/2).^(n-1) subplot(2,2,1) plot(n,y) n=0:0.1:15

y=(1/2).^n+(1/2).^(n-1) %绘出Aa基因型曲线图 subplot(2,2,2) plot(n,y) 五、曲线图

47

图1假设一条件下,若干年后AA型基因曲线

图2假设二条件下,若干年后aa型基因曲线

图3假设三条件下,若干年后AA型基因曲线

六、模型的推广与应用

通过对生物基因型的研究可以科学的预测若干年后生物基因的分布,从而对生物种群有一个全面的认识,对未来植物的特性进行科学的管理使其向有利于人类期望的方面发展,更加有助于人类的生存与发展。 七、参考文献

[1]贾秋玲,基于MATLAB7.X系统仿真.西北工业大学出版社.2005.1. [2]边馥萍,数学建模方法与算法[M].高等教育出版社2004.6.3 [3]叶其孝,数学建模.机械工业出版2004.10.

47

本文来源:https://www.bwwdw.com/article/d57f.html

Top