Java教程

函数插值之Lagrange插值(原理及代码实现)

本文主要是介绍函数插值之Lagrange插值(原理及代码实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

     对于一个函数,有时我们我们并不知道这个函数本身,知道的只是一些点,但是我们还想近似的描绘出函数,那么这时我们就要用到插值了,当然仅通过一些点就想得到函数的具体走势还是非常困难的,通过插值得到的函数一定是通过这些已知点的,所以插值可以说是一种近似,来近似的反应未知函数的走势。

插值的类型有很多种,Lagrange插值便是其中之一

function f=lan(a,b)
syms x
n=length(a);
f=0;
for i=1:n
    g=1;
    L=1;
    for j=1:n
        if j~=i
            g=g*(x-a(j));
            L=L*(a(i)-a(j));
        end
    end
    f=f+g/L*b(i);
end
f=expand(f);
disp(f);


>> a=[1,2,4];%自变量
>> b=[8,1,5];%因变量

>> lan(a,b)
3*x^2 - 16*x + 21

ans =
 
3*x^2 - 16*x + 21

这篇关于函数插值之Lagrange插值(原理及代码实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!