Пример выполнения заданий
Построение первой формулы Ньютона в пакете MATHCAD. Пример функции для построения матрицы конечных разностей:
Первая формула Ньютона может иметь вид
Формулу Гаусса можно реализовать следующим образом:
где x, y – табличные значения; X – точка интерполяции; n – количество узловых точек. Пример программ для вычислений по первой формуле Ньютона в MATLAB. X,Y – табличные значения; x – точка интерполяции; n – количество узловых точек. function res = Nuton1(x,X,Y,n) res=Y(1); % определение шага таблицы H=X(2)-X(1); for i=1:n % построение матрицы конечных разностей konrazn=diff(Y,i); konrazn=konrazn(1); % вычисление факториала fact=prod(1:i); % вычисление (x-x0)(x-x1)...(x-xn-1) Mult=1; for j=1:i Mult=Mult*(x-X(j)); end; res=res+(konrazn/(fact * H^i))*Mult; end; res return Функция EvalNuton.m вычисляет значения указанного полинома в заданном множестве точек: function yy = EvalNuton(X,Y,xx,formNumber) n=length(X)-1; if (formNumber==1) for i=1:length(xx); yy(i)=Nuton1(xx(i),X,Y,n); end; else for i=1:length(xx); yy(i)=Nuton2(xx(i),X,Y,n+1); end; end; return Пример вызова функций и построения графика: >> x = [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9] >> y = [0.99602 1.07670 1.15402 1.22777 1.29776 1.36386 1.42592 1.48384 1.53751 1.58688] >> EvalNuton(x,y,0.04,1) res = 1.0287 >> EvalNuton(x,y,0.89,2) res = 1.5821 >> xx=linspace(0,1,1000) >> yy=EvalNuton(x,y,xx,1) >> figure('Color','w') >> hold on >> plot(xx,yy,'r') >> plot(x,y,'bo')
|