一、基本原理
比如有如下这些点
x1 | x2 | x3 | x4 |
---|---|---|---|
y1 | y2 | y3 | y4 |
那么在拉个朗日原理中可以把过这些点的曲线表示为:
其g(x)y叫做一个插值基函数(开关),当x=x1时,g1(x)=1,而当x=x2,x3,x4时,g1(x)都为0,其他的也是如此,这样当x=x1时,f(x)中就只保留了g1(x)y1项,其他项都为0,就保证了过点(x1,y1);其他点以此类推;
原理讲解得很简单,具体可以参考其他文献资料。
二、Matlab代码
clear
clcx = [466 741 950 1422 1634];
y = [7.04 4.28 3.40 2.54 2.13];x1 = min(x):0.5:max(x);
y1 = lagrange(x,y,x1);
plot(x,y,'ko',x1,y1,'r-')function fx = lagrange(x0,y0,x)m = length(x);n = length(x0);for i = 1:mz = x(i);s = 0;for k = 1:np = 1;for j = 1:nif j~=kp = p * (z-x0(j))/(x0(k)-x0(j));endends = p*y0(k)+s;endfx(i) = s;end
end