高等数学问题的MATLAB解法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 高等数学问题的MATLAB解法
图 5-3 摆线的绘制
第5章 高等数学问题的MATLAB解法
5.1.3 曲线族的绘制 【例5-1-3】 三次曲线的方程为y=ax3+cx,试探讨参数a和c
对其图形的影响。 解: ◆ 建模 因为函数比较简单, 因此可以直接写入绘图语句中,用循环
语句来改变参数。注意坐标的设定方法,以得到适于观察的图形。 给出的程序不是唯一的,例如也可用fplot函数等。读者可自行探 索其他编法。
xvalues=w*exp(-4*tvalues).*sin(w*tvalues + pi/3);
第5章 高等数学问题的MATLAB解法
◆ 程序运行结果 运行这两种程序都得到图5-1所示的曲线。为了节省篇幅,我 们没有显示y的数据。以后的各例中还将省略绘图时的标注语句。 从本例看,第二种方法似乎更麻烦一些,但它具备模块化的特点。 当程序中要反复多次调用此函数,而且输入不同的自变量时,利 用函数文件可大大简化编程。我们应该掌握这种方法。两次应用 diff函数或用diff(y,2)可以求y的二次导数,读者可自行实践。
【例5-1-4】 极限的定义和判别。 解: ◆ 建模 对于函数y=f(x),当任意给定一个正数ε时,有一个对应的正数
δ 0<|xc-x|<δ
时, |A-f(x)|<ε
其中,A是f(x)在x→xc时的极限,如果找不到这样的δ,A就不是 它的极限。只考虑左极限时,因为xc-x必为正数,所以可去掉绝 对值符号。
ezplot(′(1-cos(x))./x./sin(x)′) grid on 运行程序得出图5-5。从图上可见,此函数在x0=±π处有间断 点。在间断点左右,函数f(x)分别趋向于±∞。现在尝试用数组方 法计算以下三个特征点的值,令 x1=[-pi,0,pi] y1=(1-cos(x1))./x1./sin(x1) 得到警告: Warning: Divide by zero及 y1=1.0e+015 *[5.1984, NaN, 5.1984]
第5章 高等数学问题的MATLAB解法
5.1 函数极限和导数
5.1.1 单变量函数值的计算和绘图
【例5-1-1】
y 3 e4tsin 4 3t π
2
3
要求以0.01s为间隔,求出y的151个点,并求出其导数的值和曲线。
解: ◆ 建模
可以采取下列两种方法来做:
(1) 只用主程序编程的方法;
(2) 编成函数文件,由主程序调用的方法。
第5章 高等数学问题的MATLAB解法
图 5-5 例 5-1-5的曲线图形
第5章 高等数学问题的MATLAB解法
可见左右x0=±π处的两个数都是很大的,而中间x=0处则是非 数(NaN)。这是由于在该点出现了函数y=0/0所造成的。从理论上 说,应该通过罗必达法则,分别对分子和分母求导,再求其极限。 但求导也有点麻烦,在用计算机解题时,宁可用同一个程序多算 几个点。为此,对这三个特殊点的左右邻域各取一点, 都做计算, 共计算六个点。令
第5章 高等数学问题的MATLAB解法
◆ MATLAB程序
检验极限是否正确的程序
disp(′A是否是f(xc)的极限?′)
fxc=input(′ f(x)的表达式为,例如sin(x)/x′,′s′),
%输入函数表达式
A=input(′A=,例如A=1′), %输入极限值
xc=input(′xc=,例如xc=0′), %输入对应的自变量值
e1=0.001,x2=[-pi-e1, -pi+e1,0-e1,0+e1,pi-e1,pi+e1] y2=(1-cos(x2))./x2./sin(x2)
第5章 高等数学问题的MATLAB解法
得到的结果是 y2=-636.4171 636.8224 0.5000 0.5000 636.8224 -636.4171 这就证实了我们的判断大体上是对的,即在x0=±π的间断点 两侧,函数f(x)分别趋向于-∞和∞,而在x=0处,f(x)趋向于0.5。
subplot(2,1,1),plot(t,y), grid
%绘制曲线并加上坐标网格
title(′绘图示例′),xlabel(′时间 t′),ylabel(′y(t)′)
%加标注
Dy=diff(y); subplot(2,1,2),plot(t(length(t)-1),Dy), grid
%求导数并绘制曲线,注意用数值方法求导后,导数数组长
第5章 高等数学问题的MATLAB解法
◆ 讨论 用数值方法虽然方便,但邻域大小的选择有时会影响计算结 果。选得大了,结果的偏差比较大,比如这里算出的636离无穷大 还差得远,但也不能选得太小。几个很小的数之间作除法所造成 的误差往往极其可观,比如在这道题中把邻域选为最小数eps,就 得不到正确的结果。一般来说,有了全局的曲线,从图上就可判 断大致的结果,因为ezplot函数的自变量增量是上下限之间分成 300份,如果使间隔值缩小,且在临界点附近函数值看不出大的起 伏,那这个结果就可以相信了。
,写出以下程序:
x1=linspace(-pi,pi,1001);
plot(x1,exp(1./x1)./x1),grid on
axis([-pi,pi,-2,10])
第5章 高等数学问题的MATLAB解法
运行后得出图5-6,然后求x1=0的邻域y值, 键入: x1=[-eps,0,eps];
y= exp(1./x1)./x1
flag=1; delta=1; x=xc-delta; n=1;
%初始化
while flag==1 epsilon=input(′任给一个小的数ε=′)
%任意给出ε
while abs(A-eval(fxc))>epsilon delta=delta/2; x=xc-delta; %找δ
if abs(delta)< eps disp(′找不到δ′),n=0; break
%找不到δ,跳出内循环
end,
end
第5章 高等数学问题的MATLAB解法
if n==0 disp(′极限不正确′),break,end,
%极限不正确, 跳出外循环
delta,disp(′极限正确′) %找到了δ
flag=input(′再试一个ε吗? 再试按 1 ,不试按0或任意数字键
′),
%再试
第5章 高等数学问题的MATLAB解法
◆ MATLAB程序
x=-2: 0.1: 2;
%给定x数组,确定范围及取点密度
subplot(1,2,1)
%分两个画面绘图
for c=-3: 3
%取不同的c循环
plot(x,x.^3+c*x),hold on,
end, grid
subplot(1,2,2)
for a=-3: 3
b消去t将此方程化为直角坐标中的形式作出它的图形
第5章 高等数学问题的MATLAB解法
第5章 高等数学问题的MATLAB解法
5.1 函数极限和导数 本节习题 5.2 解析几何和多变量分析 本节习题 5.3 数值积分和微分方程数值解 本节习题 5.4 数列和级数 本节习题 5.5 线性代数 本节习题 5.6 概率论与数理统计 本节习题
end
第5章 高等数学问题的MATLAB解法
◆ 程序运行结果 试判断: (1) f(x)=x2-8在x→xc=3时是否以1.001为左极限? (2) f(x)=sin(x)/x在x→xc=0时是否以1为左极限? 对于(1), 将得出“极限不正确”的结果; 而对于(2),将得 出“极限可能正确”的结果。读者可思考为什么要加“可能”二 字而不能给出肯定的答复。
得到 y=0。
第5章 高等数学问题的MATLAB解法
图 5-6 函数y=f1(x1)的图形
第5章 高等数学问题的MATLAB解法
度比原函数减少一
ylabel(′Dy(t)′)
%加标注
第5章 高等数学问题的MATLAB解法
(2) 第二种方法的主程序exn511b如下: dt=0.01; t=[0: dt: 1.5]; w= 4*sqrt(3); y=exn511bf(t,w); Dy=diff(y)/dt; %绘图和加标注的程序略去 另要建立一个函数文件exn511bf.m,其内容为: function xvalues= exn511bf (tvalues,w) %注意编写的函数文件中,其语法对数组w应该能用元素群 运算。
%设定参数数组 %输入常数
%计算x,y
%绘图
第5章 高等数学问题的MATLAB解法
◆ 程序运行结果 设r=1,令R=r, R=0.7及为了显示摆线的正确形状,x、 y坐标保持 等比例是很重要的,因此程序中要加axis (′equal′) 语句。
图 5-4 c和a取不同值时y=ax3+cx (a) a=1,c取不同值; (b) c=1,a取不同值
第5章 高等数学问题的MATLAB解法
5.1.4 极限判别 用MATLAB来表达推理过程是比较困难的,因为它必须与实
际的数值联系起来。比如无法用无穷小和高阶无穷小的概念,只
能用e-10、 e-20等数值。不过极限的定义恰恰用了δ和ε这些数的 概念,因此不难用程序表达。
%取不同的a循环
plot(x,a*x.^3+x),hold on,
end, grid,hold off
用直接在图形窗内编辑的方法可在图内标注字符。
第5章 高等数学问题的MATLAB解法
◆ 程序运行结果 程序运行结果见图5-4,其中a和c均从-3取到3,步长为1。
第5章 高等数学问题的MATLAB解法
第5章 高等数学问题的MATLAB解法
5.1.5 画出曲线并求左右极限 【例5-1-5】 画出 f(x) 1 cosx 的图形,找到它的间断点 xsinx
x0,判断它在间断点附近的取值,并求它在x=0处的值或极限值。
第5章 高等数学问题的MATLAB解法
解: ◆ 程序及运行结果 用数值计算方法来求。先绘图, 程序如下:
Warning: Divide by zero.
y=0
Inf
Inf
这说明x1取-eps即x趋向-Inf时,y的极限为零; 而在x趋向Inf时, y趋向Inf。
用MATLAB中符号数学的语句可以直接求解如下:
syms x,y=limit(x*exp(x),x,Inf)
得到 y=Inf,
syms x,y=limit(x*exp(x),x,-Inf)
第5章 高等数学问题的MATLAB解法
图 5-2 摆线的生成
第5章 高等数学问题的MATLAB解法
解: ◆ 建模 概括几种情况,其普遍方程可表示为:
xA = rt-Rsin t yA = r-Rcos t 可由这组以t为参数的方程分析其轨迹。
第5章 高等数学问题的MATLAB解法
◆ MATLAB程序 t=0: 0.1: 10; r=input(′r=′),R=input(′R=′) x=r*t-R*sin(t); y=r-R*cos(t); plot(x,y),axis(′equal′)
求导数可采用diff函数对数组y做运算的方法。
第5章 高等数学问题的MATLAB解法
◆ MATLAB程序
(1) 第一种方法的程序exn511a如下:
t=[0: .01: 1.5];
%设定自变量数组t
w= 4*sqrt(3);
%固定频率
y=w/8*exp(-4*t).*sin(w*t + pi/3); %注意用数组运算式
第5章 高等数学问题的MATLAB解法
图 5-1 例5-1-1的曲线
第5章 高等数学问题的MATLAB解法
5.1.2 参变方程表示的函数的计算和绘图 【例5-1-2】 摆线的绘制。如图5-2所示,当圆轮在平面上滚
动时,轮上任一点所画出的轨迹称为摆线。如果这一点不在圆周 上而在圆内,则生成内摆线; 如果该点在圆外,即离圆心距离大 于半径,则生成外摆线。对于后一种情况,可由火车轮来想象。 其接触轨道的部分,并不是直径最大处,其内侧的直径还要大一 些,以防止车轮左右出轨。在这部分边缘上的点就形成外摆线。
第5章 高等数学问题的MATLAB解法
如果求x在无穷大处的极限,可以进行自变量替换,用x 1=1/x把f(x)变为f1(x1), 然后研究以x1为自变量的函数的曲线,并 研究x1=0附近的极限和特性。
比如,若f(x)=xex,可用下面的方法求 lim f(x)
x
。令x1=1/x,
得到
e1/x 1 y f(1/x1) x1 f1(x1)