Изучение математического пакета MatLab, решение задачи интерполирования, страница 4


Программа использует следующие функции:

  • sfunc(x) – возвращает значение функции по заданной абсциссе, поддерживает работу с массивами;
  • lagranzh(t,x) – вычисляет значения полинома Лагранжа с узлами в точках, заданных массивом x, в точке t, либо в точках (поддерживает работу с массивами);
  • w(t,x,j) – вспомогательная функция для построения полинома Лагранжа.
     t – точки, в которых вычисляется функция, x – узлы, j – индекс функции;
  • ravnomer(c,d,n) – возвращает массив из n+1 узлов, выбранных на отрезке с концами в точках c и d, в соответствии с методом равномерного разбиения;
  • tchebishev(c,d,n) - возвращает массив из n+1 узлов, выбранных на отрезке с концами в точках c и d по Чебышеву;Блок-схемы функций

Расчет точек исходной функции


Расчет полинома Лагранджа, по двум сеткам Чебышевской и равномерной.



Расчет массивов точек, требуемых для построения полинома.




Расчет равномерной сетки разбиения


Расчет Чебышевской сетки разбиения


Листинг

Kursovaja.m

xmin=-1;

xmax=1;

ymin=-1;

ymax=1;

h=1e-2;

x=xmin:h:xmax;

m = 3;

n = [2 6 14];

size = get(0,'ScreenSize');

size=(size+[size(3)/16,size(4)/16,-size(3)/8,-size(4)/8]);

for i= 1: m

    figure('Position',size);

    subplot(1,2,1);

        hold all

        grid on

        title({['polynom of the ',int2str(n(i)),

' order'];['(',int2str((n(i)+1)),' points)']});

        axis manual