c语言编程 实现拉格朗日插值
就是表达出一个函数Ln(x)的运算程序:能输入某个数值进去,结果以表格或图像的形式输出,实在两者都不行就最简单的输出就行 简单例如:已知函数y=2x+1
当然,我们不知道以上的函数,而且这个函数也假设不容易得出,所以我们要用一种通用的方法来构造一个函数Ln(x)用来代替(当然,其中有误差,但没关系)
这个方法是:Ln(x)=∑yklk(x) (求和范围是k=0到n)
(x-x0)(x-x1)…(x-x k-1 k+1)…(x-xn)
其中 lk(x)= (k=0,1,2…n)
(xk-x0)(xk-x1)…(xk-xk-xk+1)…(xk-xn)
(中间下标相同的哪项没有!
就是讲,假设我想求L3(1.5)的话,即求当输入n=3,x=1.5时,我们所构造的函数值:
L3(x)=∑yklk(x)=y0l0(x)+y1l1(x)+y2l2(x)+y3l3(x)
=1*[(x-x1)(x-x2)(x-x3)] / [(x0-x1)(x0-x2)(x0-x3)] + 3*[(x-x0)(x-x2)(x-x3)] / [(x1-x0)(x1-x2)(x1-x3)]
+ 5*[(x-x0)(x-x1)(x-x3)] / [(x2-x0)(x2-x1)(x2-x3)] + 7*[(x-x0)(x-x1)(x-x2)] / [(x3-x0)(x3-x1)(x3-x2)] =1*[(1.5-1)(1.5-2)(1.5-3)] / [(0-1)(0-2)(0-3)]