实验2:微积分实验(电子科技大学数学实验习题)

实验2:微积分实验

2.1 基础训练

  1. 已知函数 y = a e x a + x 2 y=\frac{ae^x}{\sqrt{a+x^2}} y=a+x2 aex,求解该函数在以下情形对应点x处的二阶导数值.

    (1) a = 2, x = 3a = 6.

    (2) a = 3, x = 2a =6.

    编写本问题的函数文件第一行格式如下(函数名、文件名自己设定):

    function r=myfun
    %变量r存储导数值
    

    解:

    定义符号计算函数来求解,程序如下:

    function r = myfun
        syms y(a,x)                                         %定义符号变量
        y = a*exp(x)/sqrt(a+x^2);                           %计算y符号表达式
        d2 = diff(y,x,2);                                   %求y对x二阶导函数
        r1 = double(subs(d2,[a,x],[2,6]));                  %代入具体数值
        r2 = double(subs(d2,[a,x],[3,6]));
        r = [r1,r2];                                        %组成返回结果
    
    

    运行结果:

    在这里插入图片描述

  2. 编写程序用符号工具箱函数求定积分 ∫ 0 π e 2 c o s x c o s x   d x \int_0^\pi{e^{2cosx}cosx}\,dx 0πe2cosxcosxdx

    解:

    代码:

    function I = myfun
        syms y x
        y = exp(2*cos(x))*cos(x);
        I = double(int(y,x,0,pi));
    
    

    运行结果:

    在这里插入图片描述

  3. 用dsolve求解下列微分方程,并绘制解函数曲线

    y ′ ′ + 2 y ′ + y = 1 , y ( 0 ) = 3 , y ′ ( 0 ) = 0 y^{''}+2y^{'}+y=1,y(0)=3,y^{'}(0)=0 y′′+2y+y=1,y(0)=3,y(0)=0

    代码:

    syms y(x)                                         %定义函数
    d1 = diff(y,1);                                   %定义一阶导函数
    d2 = diff(y,2);                                   %定义二阶导函数
    s = dsolve(d2+2*d1+y==1,y(0)==3,d1(0)==0,x)       %求解微分方程
    x0 = -20:0.01:20;                                 %选定绘图区间
    y = double(subs(s,x,x0));                         %计算函数在区间上函数值
    plot(x0,y)                                        %绘图
    

    运行结果:

    在这里插入图片描述
    在这里插入图片描述

2.2 综合训练

一、实验任务

寻找拐点的问题

如果我们已经知道连续函数的解析表达式,则可以利用拐点的定义寻找出该函数的拐点.根据拐点定义及判别方法可知:如果函数在一个点两侧二阶导数异号,则该点对应曲线上的点即为拐点.

现实问题中,往往没有这种已知条件较为充足、理想的情况.例如,如果知道一个函数的某些离散节点的函数值,能否找出函数的拐点.

问题(寻找拐点问题) 已知函数 y = y ( x ) y=y(x) y=y(x)在若干个点的函数值,具体数据如表1所示.请找出函数在[0,12]区间上的所有可能的拐点.

提示:可以用离散点函数值近似估算二阶导数值。

表1 函数在若干节点的函数值

k x k x_k xk y k y_k yk
10.02.4051
20.22.8759
30.43.4072
40.63.9690
50.84.5147
61.04.9844
71.25.3149
81.45.4541
91.65.3752
101.85.0849
112.04.6224
122.24.0482
132.43.4297
142.62.8260
152.82.2793
163.01.8125
173.21.4322
183.41.1336
193.60.9059
203.80.7364
214.00.6131
224.20.5258
234.40.4668
244.60.4302
254.80.4125
265.00.4114
275.20.4263
285.40.4575
295.60.5064
305.80.5748
316.00.6648
326.20.7776
336.40.9129
346.61.0671
356.81.2324
367.01.3961
377.21.5416
387.41.6501
397.61.7052
407.81.6966
418.01.6234
428.21.4945
438.41.3263
448.61.1387
458.80.9503
469.00.7756
479.20.6233
489.40.4971
499.60.3965
509.80.3188
5110.00.2605
5210.20.2178
5310.40.1875
5410.60.1670
5510.80.1546
5611.00.1490
5711.20.1496
5811.40.1565
5911.60.1701
6011.80.1913

任务1:先给出找拐点算法思想、步骤;

任务2:编写程序,输出可能的拐点.

二、实验目的

熟悉拐点的概念;

理解导数、二阶导数的近似计算方法;

三、实验过程

任务1:实验思路

先估算出各点的二阶导数

根据二阶泰勒多项式,得到

f ( a + h ) = f ( a ) + h f ′ ( a ) + h 2 2 f ′ ′ ( a ) + O ( h 2 ) f(a+h)=f(a)+hf^{'}(a)+\frac{h^2}{2}f^{''}(a)+O(h^2) f(a+h)=f(a)+hf(a)+2h2f′′(a)+O(h2)

f ( a − h ) = f ( a ) − h f ′ ( a ) + h 2 2 f ′ ′ ( a ) + O ( h 2 ) f(a-h)=f(a)-hf^{'}(a)+\frac{h^2}{2}f^{''}(a)+O(h^2) f(ah)=f(a)hf(a)+2h2f′′(a)+O(h2)

联立①②可得

f ′ ′ ( a ) = f ( a + h ) + f ( a − h ) − 2 f ( a ) h 2 + O ( h 2 ) f^{''}(a)=\frac{f(a+h)+f(a-h)-2f(a)}{h^2}+O(h^2) f′′(a)=h2f(a+h)+f(ah)2f(a)+O(h2)

本函数的节点的步长为0.2,所以h=0.2,除去最小节点和最大节点,可计算出其他节点的二阶导数,接着找到两侧二阶导数异号的节点即为拐点。

具体数据可复制到excel中然后调用MATLANB中xlsread函数来实现快速读取。

任务二:

将“表1 函数在若干节点的函数值”保存在同一文件夹下的data.xls文件中,如下图所示(截取部分):

在这里插入图片描述

代码:

% 读取Excel文件
filename = 'data.xlsx';
sheet = 1;  % 工作表编号
range = 'B3:C62';  % 范围
[num, txt, raw] = xlsread(filename, sheet, range);
%读取x和y
x = num(:,1);
y = num(:,2);
%计算除端点外的点的二阶导函数并存储到D2中
h = 0.2;   %规定步长
D2=[];
for i = 2:59
    d2 = (y(i-1)+y(i+1)-2*y(i))/h^2;
    D2 = [D2,d2];
end
%找到两端异号的点的横坐标和纵坐标并存储到x1和y1中
x1 = [];
y1 = [];
for i = 1:57
    if D2(i)*D2(i+1)<0
        x1 = [x1,(x(i+1)+x(i+2))/2];
        y1 = [y1,(y(i+1)+y(i+2))/2];
    end
end
%输出拐点横纵坐标
disp(x1);
disp(y1);
%绘制图像便于直观观察
plot(x,y,'-b.')
set(gcf,'color','w')
set(gca,'fontsize',14)
hold on 
plot(x1,y1,'r+','markersize',15);

运行结果:

在这里插入图片描述

第一行为拐点横坐标,第二行为纵坐标,上下一一对应。从运行结果可知,一共找到了四个可能的拐点,绘制图像如下:

在这里插入图片描述

其中红色十字标注位置即为拐点.

四、实验自评与改进方向

在本次实验中, 我较好地完成了实验任务, 得到预期结果, 达到实验目标.以后仍然需要巩固数学基础知识, 为实验课程提供坚实的理论基础和保障.

五、实验体会,收获及建议

在本次实验中,我体会最深的就是使用泰勒公式求解离散型函数二阶导数的方法,在微积分理论课程学习中,研究的都是连续型函数,也没有修读离散数学,所以初次见到题目便不知所措,在老师的指点下,用泰勒公式成功完成本次实验。

通过本次实验,我更加真切的体会到理论与实践结合的学习方法的高效性,以后将继续保持这个良好习惯。

  • 39
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个毛毛虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值