Курсовая работа: Численные методы при решении задач
// Умножаем обратную матрицу на транспонированную к F
// т.е. Inverse (TF*F) * TF
// Такая матрица будет размера yr*n, поэтому вполне хватит памяти для F
MatrixMultiply (REV, n, n, TF, yr, F);
// И, наконец, всё это умножаем на матрицу Y и получаем искомые
// коэффициенты a1, a2, ... aN
// Для такой матрицы (размером 1*n) вполне хватит памяти под REV
MatrixMultiply (F, n, yr, ym, 1, REV);
// Всё, печатаем ответ
printf ("\nВычисления успешны, получен следующие коэффициенты:");
for (i = 0; i < n; i++)
printf ("\na%d = %lg", i, *(REV + i));
// Освободить память
free (F);
printf ("\nНажмите any key");
getch ();
printf ("\nDone.\n");
return 0;
}
Результат решения задачи 30 на ЭВМ
После запуска программа сразу же начинает расчёт коэффициентов. На экран выводится следующее:
Программа аппроксимации функции методом наименьших квадратов для модели
y = a1x1 + a2x2^2 + a3x1x2
по заданной таблице эксперимента.
Разработчик: студент группы ПС-146
Нечаев Леонид Владимирович
25.02.2004
Известны результаты наблюдений:
x1 x2 y
1 1 0