Самоучитель Matlab
Сначала переменной res присваивается нулевое значение, а затем в операторе цикла (в котором индексная переменная i пробегает значения от 1 до m) ее значение изменяется в команде res=res+phi(x,i)*a(i). Здесь использован оператор матричного умножения *, но это не принципиально, поскольку в данном случае список phi(x,i) умножается на скаляр a(i) при фиксированном индексе i. Список phi(x,i) представляет собой набор значений базисной функции с индексом i для значений аргументов из списка x. Каждый элемент этого списка умножается на скалярное значение a(i), и полученные на каждом итерационном шаге списки складываются (в результате выполнения оператора цикла). Общий результат дает значение аппроксимирующего выражения для набора точек из списка x. Программный код функции GetFit() можно видеть в документе на рис. 8.10, где представлено окно редактора m-файлов.
Рис. 8.10. Код функции для вычисления значения аппроксимирующего выражения
Наконец, следующая функция MyFit() объединяет в себе две предыдущие функции LSFit() и GetFit(). С ее помощью вычисляются значения аппроксимирующего выражения и строятся соответствующие графики. Результат функцией не возвращается. Код у функции следующий:
function MyFit(x,y,z,phi,m) a=LSFit(x,y,phi,m); res=GetFit(a,z,phi); plot(x,y,'rs','LineWidth',2); hold on;
grid on; plot(z,res,'b-','LineWidth',2); title('Базовые точки и аппроксимация');
legend('базовые точки','аппроксимация'); hold off;
end