t*******i 发帖数: 4 | 1 有两个数组A, B,分别存储一系列f(x) 和x 值,
现在想求出某一点的导数值f'(xi)。我用Lagrange插值法
做,对插值公式求导,测试发现:
f(x)=exp(x)时,求出的值yi=2*exp(xi),吻合得很好;
换其它的函数测试,则误差很大。
不知道有没有什么好的适用于此种情况的数值微分法,
感觉Lagrange插值法不好。
这方面有成熟的程序吗? | r****y 发帖数: 1437 | 2
对对, 由于等距取点是真正的原因. CFD上课学过的.
至于你说差分格式和什么插值, 道理是没错但不是很实用.
差分格式是可以用Taylor展开来获得的, 比如你说的
f(Xn+1) = f(Xn) + hf'(Xn) + h*h*f''(Xn)/2! + ...
f'(Xn) = [f(Xn+1)-f(Xn)]/h - h*f''(Xn)/2! - ...
上式是严格成立的, 现在照你说的那个近似, 我就是忽略
一阶及高阶小量得到的. 当然要是你说f(x)是一次多项式, 自然
f''(x)=0, f'(Xn) = [f(Xn+1)-f(Xn)]/h 成了精确成立的式子.
不过这么说也没什么实际意义啊.
我刚才的RE文里要说的意思是, 要是他只想求在Xi这些
已知点上的f'(Xi), 那根本不需要插值, 用Talyor展开, 就可以
构造他想要的精度的格式了. 要是他所谓的Xi是未知点的话,
那自然如你说建议. |
|