Пусть f - непрерывная вещественная функция, определенная на интервале [a, b].Я хочу приблизить эту функцию кусочно-квадратичным полиномом.Я уже создал матрицу, которая суммирует эти полиномы.Допустим, я рассматриваю равномерное разбиение интервала на N частей (следовательно, N + 1 балл).
У меня есть матрица A размером N, умноженная на 3, где строка k представляет связанный квадратичный полином.с k-интервалом этого разбиения в естественной форме (строка [abc] представляет собой многочлен a + bx + cx ^ 2).Я уже создал метод для поиска этой матрицы (очевидно, это зависит от выбора моих точек интерполяции внутри каждого интервала, но это не имеет значения для этого вопроса).
Я пытаюсь построить соответствующийфункционировать, но у меня есть некоторые проблемы.Я использовал ту же идею, что и в Подобный вопрос .Это то, что я написал
x=zeros(N+1,1);
%this is the set of points defining the uniform partition
for i=1:N+1
x(i)=a+(i-1)*((b-a)/(N));
end
%this is the length of my linspace for plotting the functions
l=100
А теперь я рисую функции:
figure;
hold on;
%first the original function
u=linspace(a,b,l*N);
v=arrayfun( f , u);
plot(u,v,'b')
% this is for plotting the other functions
for k=1:N
x0=linspace(x(k),x(k+1));
y0=arrayfun(@(t) [1,t,t^2]*A(k,:)',x0);
plot(x0, y0, 'r');
end
Проблема в том, что for строит ту же функцию f, и я не знаю почему.Я пробовал с несколькими различными функциями.Я уверен, что моя матрица А верна.