1、实验六函数的数值微分计算函数的数值微分计算2904203015 李亚韦一、 实验描述数值导数的公式对开发求解常微分方程和偏微分方程边值问题的算法很重要。我们可以通过一阶导数中心差分公式,二阶导数中心差分公式,拉格朗日多项式微分和牛顿多项式微分等多种方法求解已知函数微分。此处,我们通过以上一些方法求解方程的微分实验。中心差分公式:精度为的中心差分公式: 其中为截断误差。精度为的中心差分公式: 其中 为截断误差。二阶、三阶和四阶精度为的表达式如下: 二阶、三阶和四阶精度为的表达式如下: 拉格朗日多项式微分:如果函数必须在的某一边计算,则不能使用中心差分公式。位于的右边(左边)的等距横坐标的公式称为
2、前向(后向)差分公式。精度为的一阶和二阶前向差分公式和后向差分公式如下: (前向微分) (后向微分) (前向微分) (后向微分) 牛顿多项式微分:的二阶前向差分公式: 的二阶中心差分公式: 的二阶后向差分公式: 二、 实验内容一阶导数中心差分法的误差分析:实验程序:syms xy=cos(x);a=diff(y,x,3); %t=-pi:0.01:pi;a=subs(a,x,t);m=max(a);hb=(3*0.5*10-9/m)(1/3); %求解最优值syms he=0.5*10(-9)/h+m/6*h2; %误差边值ezplot(e,10-9,0.005)grid on实验程序:sym
3、s xy=cos(x);a=diff(y,x,5);t=-pi:0.01:pi;a=subs(a,x,t);m=max(a);b=0.5*10-9;hb=(45/4*b/m)(1/5) %最优值syms he=3/2*b/h+m/30*h4; %误差边值ezplot(e,10-9,0.08)grid on二阶导数O(h2), O(h4)中心差分法的误差实验程序:syms xy=cos(x);a=diff(y,x,5);t=-pi:0.01:pi;a=subs(a,x,t);m=max(a);b=0.5*10-9;hb=(48*b/m)(1/4) %最优值syms he=4*b/(h2)+m/1
4、2*h2; %误差边值ezplot(e,10-9,0.08)grid on实验程序:syms xy=cos(x);a=diff(y,x,5);t=-pi:0.01:pi;a=subs(a,x,t);m=max(a);b=0.5*10-9; hb=(240*b/m)(1/6) %最优值syms he=16/3*b/(h2)+m/90*h4; %误差边值ezplot(e,10-9,0.2)grid on以上四种方法在不同步长h的微分曲线分布:一阶实验程序:x=0:0.1:pi;h1=0.1;h2=0.01;h3=0.001;f1=(cos(x+h1)-cos(x-h1)/(2*h1); %h=0.
5、1时的微分函数f2=(cos(x+h2)-cos(x-h2)/(2*h2); %h=0.01时的微分函数f3=(cos(x+h3)-cos(x-h3)/(2*h3); %h=0.001时的微分函数plot(x,f1,x,f2,*,x,f3,r+)grid on一阶实验程序:x=0:0.1:pi;h1=0.1;h2=0.01;h3=0.001;f1=(-cos(x+2*h1)+8*cos(x+h1)-8*cos(x-h1)+cos(x-2*h1)/(12*h1); %h=0.1时的微分函数f2=(-cos(x+2*h2)+8*cos(x+h2)-8*cos(x-h2)+cos(x-2*h2)/(
6、12*h2);%h=0.01时的微分函数f3=(-cos (x+2*h3)+8*cos(x+h3)-8*cos(x-h3)+cos(x-2*h3)/(12*h3);%h=0.001时的微分函数plot(x,f1,x,f2,*,x,f3,r+)grid on二阶实验程序:x=0:0.1:pi;h1=0.1;h2=0.01;h3=0.001;f1=(cos(x+h1)-2*cos(x)+cos(x-h1)/h12; %h=0.1时的微分函数f2=(cos(x+h2)-2*cos(x)+cos(x-h2)/h22; %h=0.01时的微分函数f3=(cos(x+h3)-2*cos(x)+cos(x-
7、h3)/h32; %h=0.001时的微分函数plot(x,f1,x,f2,*,x,f3,r+)grid on二阶实验程序:x=0:0.1:pi;h1=0.1;h2=0.01;h3=0.001;f1=(-cos(x+2*h1)+16*cos(x+h1)-30*cos(x)+16*cos(x-h1)-cos(x-2*h1)/(12*h12); %h=0.1时的微分函数f2=(-cos(x+2*h2)+16*cos(x+h2)-30*cos(x)+16*cos(x-h2)-cos(x-2*h2)/(12*h22); %h=0.01时的微分函数f3=(-cos(x+2*h3)+16*cos(x+h3
8、)-30*cos(x)+16*cos(x-h3)-cos(x-2*h3)/(12*h32); %h=0.001时的微分函数plot(x,f1,x,f2,*,x,f3,r+)grid on在两端点0,采用对应精度的Lagrange多项式微分:在处的一阶微分:x=0;h=10-9:0.1:1;f=zeros(1,10);for i=1:10f(i)=(-3*cos(x)+4*cos(x+h(i)-cos(x+2*h(i)/(2*h(i); %求时不同h的微分函数endplot(h,f)grid on在处的一阶微分:x=pi;h=10-9:0.1:1;f=zeros(1,10);for i=1:10
9、f(i)=(3*cos(x)-4*cos(x-h(i)+cos(x-2*h(i)/(2*h(i);%求时不同h的微分函数endplot(h,f)grid on在处的二阶微分:x=0;h=10-9:0.1:1;f=zeros(1,10);for i=1:10f(i)=(2*cos(x)-5*cos(x+h(i)+4*cos(x+2*h(i)-cos(x+3*h(i)/(h(i)2;%求时不同h的微分函数endplot(h,f)grid on在处的二阶微分:x=pi;h=10-9:0.1:1;f=zeros(1,10);for i=1:10f(i)=(2*cos(x)-5*cos(x-h(i)+4
10、*cos(x-2*h(i)-cos(x-3*h(i)/(h(i)2;%求时不同h的微分函数endplot(h,f)grid on三、 实验结果与分析图(1)为一阶导数精度为中心差分法的误差边界的图形优化值:hb = 0.001144715331412图(1)图(2)为一阶导数精度为中心差分法的误差边界的图形优化值:.022*图(2)图(3)为二阶导数精度为中心差分法的误差边界的图形优化值:hb =0.012446660532380图(3)图(4)为二阶导数精度为中心差分法的误差边界的图形优化值:hb =0.070231222899548图(4)图(5)为一阶导数在情况下的微分曲线图,其中蓝色线
11、条表示h=0.1时的曲线变化情况,你绿色星号表示h=0.01的曲线变化情况,红色加号表示h=0.001时曲线变化情况。图(5)图(6)为一阶导数在情况下的微分曲线图,其中蓝色线条表示h=0.1时的曲线变化情况,你绿色星号表示h=0.01的曲线变化情况,红色加号表示h=0.001时曲线变化情况。图(6)图(7)为二阶导数在情况下的微分曲线图,其中蓝色线条表示h=0.1时的曲线变化情况,你绿色星号表示h=0.01的曲线变化情况,红色加号表示h=0.001时曲线变化情况。图(7)图(8)为二阶导数在情况下的微分曲线图,其中蓝色线条表示h=0.1时的曲线变化情况,你绿色星号表示h=0.01的曲线变化情
12、况,红色加号表示h=0.001时曲线变化情况。图(8)表(1)表示一阶导数在处精度为的不同h处的拉格朗日多项式微分表表(1)表(2)表示一阶导数在处精度为的不同h处的拉格朗日多项式微分表表(2)表(3)表示二阶导数在处精度为的不同h处的拉格朗日多项式微分表表(3)表(4)表示一阶导数在处精度为的不同h处的拉格朗日多项式微分表表(4)四、 实验结论通过对图(1)到图(4)的观察对比我们发现,在不同的精度和阶数的情况下,所得的误差最优值不同,而不同的方法所得的误差也不同,通过图形知,一阶导数精度为的方法所得的误差最小,而这种方式叫其他方法要好。因为各种误差都很小,所以在我们用不同方法求解微分方程的时候,所画出来的图形都基本重合,我们用肉眼基本不能分辨出在不同h值的情况下图形的不同,它们基本一致。而我们从表(1)到表(4)观察可以知道,不同h值时,所得的拉格朗日多项式微分值在处是不同的,但一阶导数的微分值在相同,而二阶导数的微分值在的值异号。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1