拉格朗日插值多項式的龍格現象
阿新 • • 發佈:2018-12-11
利用插值基函式可以很容易得到拉格朗日插值多項式,公式結構緊湊,在理論分析中甚為重要。但存在以下問題:
- 當插值節點增減時,計算要全部重新進行,甚為不便(當然現在我們有MATLAB,只需改變下引數便可);
- 存在高次插值的病態問題,也即龍格現象。 關於龍格現象,李慶揚版《數值分析》課本中,列舉了採用拉格朗日插值多項式對f(x)=函式在[-5,5]上取n+1個點的插值問題。現探討n=2~10(從二次函式到十次函式)時的插值病態現象。在n=2至10時,MATLAB計算程式碼如下
clc clear syms x0 x1 y x n x_para x0=-5:0.1:5; y=1./(1+x0.^2); for n=2:10 k=0:n; %k的範圍從0到n,共n+1項 x(k+1)=-5+10*k/n; %從x(1)到x(n+1),共n+1項,即從第0點到第n點 for i=1:(n+1) %共k+1項 part_x(i)=(x_para-x(i)); %每個因式的組成,共k+1種 end w_x(n+1)=prod(part_x); %求w(x) w_x_diff(n+1)=diff(w_x(n+1)); for j=1:(n+1) w_x_diff(j)=subs(w_x_diff(n+1),x_para,x(j)); ln_x(j)=(1/(1+x(j)^2)) * w_x(n+1) / ( (x_para-x(j))*(w_x_diff(j)) ); end Ln_x=sum(ln_x); x_vector=-4.99:0.037:4.99; Ln_x=subs(Ln_x,x_para,x_vector); figure plot(x0,y) hold on plot(x_vector,Ln_x) legend ('original function','n=x') ylabel('f(x) and Ln(x) '); end
可得出n=2至10時,原函式的曲線與拉格朗日多項式插值曲線對比如下:
由此可見,採用拉格朗日多項式插值時,Ln(x)不一定收斂於。