数值微分的一阶导数和二阶导数公式在具体计算时
问个数值微分的问题,由于没学过所以想不通,我想如果学过的话应该都遇到过吧。就是对于中心差分格式,f'(x)=[f(x+h)-f(x-h)]/2h,f''(x)=[f(x+...
问个数值微分的问题,由于没学过所以想不通,我想如果学过的话应该都遇到过吧。就是对于中心差分格式,f'(x)=[f(x+h)-f(x-h)]/2h,f''(x)=[f(x+h)-2f(x)+f(x-h)]/h^2,但实际在具体已知一系列点(xi,yi),求这系列点的2阶导数值,我可以先求其一阶导数值,然后再用一阶的差分公式求出2阶的导数,也可以直接用2阶导数的差分公式求出,对这两种算法,那个精度更高呢?
展开
展开全部
答:本题是算是问对人了,
如果你要想深入分析,需要用到函数的泰勒展开。
1) 你说的两种方法都可以用,但是后面的方法精度更高。
f''(x)=[f(x+h)-2f(x)+f(x-h)]/h^2 方法是等效与 f''(x)=[f'(x+h/2)-f'(x-h/2)]/h 是2阶精度
2) 先求其一阶导数值,然后再用一阶的差分公式求出2阶的导数,是1阶精度。
就好比 f'(x)=[f(x+h)-f(x-h)]/2h 是2阶精度,
f'(x)=[f(x+h)-f(x)]/h 是1阶精度。
关键就是在泰勒展开方面
f(x+h)=f(x)+f'(x)*h+b*f''(x)*h^2+c*f'''(x)*h^3 b,c为泰勒展开的系数
f(x-h)=f(x)-f'(x)*h+b*f''(x)*h^2-c*f'''(x)*h^3
可以看出 如果用 [f(x+h)-f(x)]/h =f'(x)+b*f''(x)*h+c*f'''(x)*h^2 后面的是误差项。
如果用 [f(x+h)-f(x=h)]/2h =f'(x) + c*f'''(x)*h^2 可以明显看出第二种方法的误差更小。
同理可以推导二阶导数的精度问题。
望采纳,如果有不明白的,可以进一步沟通
如果你要想深入分析,需要用到函数的泰勒展开。
1) 你说的两种方法都可以用,但是后面的方法精度更高。
f''(x)=[f(x+h)-2f(x)+f(x-h)]/h^2 方法是等效与 f''(x)=[f'(x+h/2)-f'(x-h/2)]/h 是2阶精度
2) 先求其一阶导数值,然后再用一阶的差分公式求出2阶的导数,是1阶精度。
就好比 f'(x)=[f(x+h)-f(x-h)]/2h 是2阶精度,
f'(x)=[f(x+h)-f(x)]/h 是1阶精度。
关键就是在泰勒展开方面
f(x+h)=f(x)+f'(x)*h+b*f''(x)*h^2+c*f'''(x)*h^3 b,c为泰勒展开的系数
f(x-h)=f(x)-f'(x)*h+b*f''(x)*h^2-c*f'''(x)*h^3
可以看出 如果用 [f(x+h)-f(x)]/h =f'(x)+b*f''(x)*h+c*f'''(x)*h^2 后面的是误差项。
如果用 [f(x+h)-f(x=h)]/2h =f'(x) + c*f'''(x)*h^2 可以明显看出第二种方法的误差更小。
同理可以推导二阶导数的精度问题。
望采纳,如果有不明白的,可以进一步沟通
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询