Курсовая работа: Численные методы при решении задач
x = 0.9, y(0.9) = 1.37
x = 1, y( 1) = 1.46
x = 1.1, y(1.1) = 1.56
x = 1.2, y(1.2) = 1.67
x = 1.3, y(1.3) = 1.79
x = 1.4, y(1.4) = 1.92
x = 1.5, y(1.5) = 2.06
x = 1.6, y(1.6) = 2.21
x = 1.7, y(1.7) = 2.36
x = 1.8, y(1.8) = 2.52
x = 1.9, y(1.9) = 2.69
x = 2, y( 2) = 2.86
Вывод:
Проверяем решение в программе Mathematica 4.2. Результаты, полученные с точностью до 2 знаков после запятой не отличаются от полученных. Задача решена верно.
Программа для решения задачи 30.
Условие задачи 30.
Разработать программу аппроксимации функции методом наименьших квадратов для модели по таблице результатов эксперимента:
X1 | X2 | Y |
1 | 1 | 0 |
-1 | -1 | -2 |
2 | 2 | -2 |
3 | -2 | 29 |
-2 | 4 | 54 |
Решение задачи по методу наименьших квадратов
Рассчитываемая модель линейна относительно своих коэффициентов ai . Задана матрицы и , а также функция для получения матрицы F. F– Специальная матрица, которая вычисляется по алгоритму, приведённому ниже. Функция представляет собой мою собственную разработку, но вполне возможно её вводить вручную. Алгоритм составления матрицы F(учитывая разложение ):
, где - функции из модели y, а .- n-й элемент матрицы .
Исходя из этих формул строится функция f (смотри листинг программы 30.c).
Далее, по формуле находится матрица с коэффициентами ai и выводится на экран.
Блок-схема функции mainиз программы 30.c
|
Блок-схема функции MMinorиз программы 30.c
Блок-схема функции MatrixMultiplyиз программы 30.c
Блок-схема функции Determinantиз программы 30.c
Листинг программы 30.c
// Задача 30. Аппроксимация функции методом наименьших квадратов
// (C) 2004 REPNZ
// Включаемые файлы
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
// -------------- Описание начальных значений ------------------