- •Курсовая работа Аппроксимация функции методом наименьших квадратов.
- •Информатика
- •Курсовая работа
- •Задание
- •Информатика
- •Аннотация.
- •Оглавление
- •I Решение задачи с использованием пакета ms Exсel. 6
- •II Решение задачи графическим методом используя функцию excel –“тренд”. 14
- •III Программа на языке программирования Pascal для решения задачи. 17
- •Введение.
- •Задание курсовой работы.
- •Исходные данные.
- •I Решение задачи с использованием пакета ms Exсel. Расчетные формулы.
- •Решение задачи.
- •Линейная аппроксимация.
- •Квадратичная аппроксимация.
- •Расчет коэффициентa детерминированности.
- •Составим таблицу 8 коэффициентов детерминированная
- •Графики и уравнения кривых, коэффициенты детерминированности
- •Файл исходных данных “Danil.Dat”
- •Вывод результатов.
- •Приложение. Рисунки хода работы
- •Библиографический список
Составим таблицу 8 коэффициентов детерминированная
Таблица 8
|
А |
В |
47 |
|
R2 |
48 |
Коэффициент детерминированности для прямой |
0,86273159 |
49 |
Коэффициент детерминированности для параболы |
0,98103481 |
Поясним как составили таблицу 8:
Шаг 1 В ячейку В48 вводим формулу =1-G28/H28.
Шаг 2 В ячейку В49 вводим формулу =1-I28/H28.
Вывод
Анализ результатов расчетов показывает, что наилучшим образом описывает экспериментальные данные парабола так как её коэффициент R2=0,9810348 наиболее близок к единице, поэтому следует выбрать уравнение :
II Решение задачи графическим методом используя функцию EXCEL –“ТРЕНД”.
Введение.
Рассмотрим результаты эксперимента, приведенные в исследованном выше примере.
Исследуем характер зависимости в два этапа:
Построим график зависимости.
Построим линию тренда.
Решение
Построение графика зависимости.
Выделим интервал А2:В26.
Вызовем Мастера диаграмм, нажав соответствующую кнопку на панели инструментов.
Используя мышь, выделим область для встроенной диаграммы.
На 1 шаге в диалоговом окне Мастера диаграмм интервал А2:В26 должен быть указан. Нажимаем Шаг>.
На 2 шаге выберем тип диаграммы XY-точечная. Нажмем Шаг>.
На 3 шаге выберем 1 тип автоформата. Нажмем Шаг>
На 4 шаге укажем следующие параметры:
Отводим 1 столбец для данных по оси Х; отведем 1 строку для текста легенды. Нажмем Шаг>.
На 5 шаге в окне “Название диаграммы: «введем заголовок “Линейная аппроксимация”; в окне “Категорий [X]:” введем “x”; в окне “Значений [Y]:” введем y. Нажмем Закончить.
Построение линии тренда
Для построения линии тренда выполняем следующую последовательность действий:
Дважды щелкнем по диаграмме. Диаграмма активизируется.
Щелкнем по графику непосредственно в одну из изображенных точек. Сам график активизируется, его окраска изменится.
Вставляем линию тренда, воспользуемся меню ВставкаЛиния тренда.
Появится диалоговое окно “Линия тренда” выберем на вкладке “Тип” линейный тип и перейдем к вкладке “Параметры”.
На вкладке “Параметры” потребуем показывать уравнение тренда на диаграмме и показывать значение R2, поставив их в соответствующие клетки. Нажимаем кнопку ОК.
Графики и уравнения кривых, коэффициенты детерминированности
На диаграмме появится линия тренда с соответствующим уравнением. Также изменится легенда. При желании текстовое поле с уравнением и значением R2, а также название координат x и y. Можно очень быстро получать решение задачи данным методом, но очень ограниченным типом функций.
Произведём построение графиков для функций до параболы третьей степени.
Вывод
Сравнивая результаты , полученные при вычислении в Microsoft Excel видим, что они полностью совпадают с вычислениями, проведенными с помощью функции EXCEL – “ТРЕНД”. Это указывает на то, что вычисления верны.
В ходе решения поучили, что наилучшие уравнение аппроксимации кубической парабола коэффициент детерминированности наиболее близок к единице и составляет . аппроксимация по параболе будет хуже так как коэффициент детерминированности ниже, чем у кубической параболы.
III Программа на языке программирования Pascal для решения задачи.
Блок-схема алгоритма метода наименьших квадратов
Блок схема метода Гаусса решение СЛАУ
k=n,
m
j=k+1,
n+1
A[k,j]=A[k,j]/A[k,k]
i=n,
m
If
i=k go to
j=k+1,
m+1
A[i,j]=A[i,j]-A[i,k]*A[k,j]
Программа.
Program Approximasiy;
uses crt;
const
n=25;
m=2;
Type
Matxy=array [1..n] of real;
Matr1=array [1..3,1..4] of real;
Matr2=array [1..n,1..3] of real;
Var i,j,k,c: integer;
d,d1: text;
X,Y: Matxy;
R: Matr1;
A: Matr2;
g: real;
Procedure ReadXY(n: integer; var c: Matxy);
Var i:integer;
Begin
For i:=1 to n do
Read(d,c[i]);
End;
Procedure Gauss (m: integer; var c: Matr1);
Begin
For i:=1 to m do
Begin
For j:=i+1 to m+1 do
c[i,j]:=c[i,j]/c[i,i];
For k:=1 to m do
If (k<>i) then
For j:=i+1 to m+1 do
c[k,j]:=c[k,j]-c[k,i]*c[i,j];
End;
End;
Begin
clrscr;
Assign(d,'C:\Danil.dat');
Reset(d);
Assign(d1,'C:\Otvet.dat');
Rewrite(d1);
ReadXY(n,x);
ReadXY(n,y);
Close(d);
For c:=1 to m do
Begin
For i:=1 to n do {Формирование матрицы R}
Begin
a[i,1]:=1;
For j:=2 to c+1 do
a[i,j]:=a[i,j-1]*x[i];
End;
WriteLn(d1,'Матрица A');
WriteLn('Матрица A');
For i:=1 to c+1 do {Формирование матрицы A}
Begin
For j:=1 to c+1 do
Begin
g:=0;
For k:=1 to n do {Матрица коэффициентов}
g:=g+a[k,i]*a[k,j];
r[i,j]:=g;
End;
g:=0;
For k:=1 to n do {Матрица свободных членов}
g:=g+a[k,i]*y[k];
r[i,c+2]:=g;
For j:=1 to c+2 do
begin
Write(d1, r[i,j]:13:5,' ');
Write( r[i,j]:13:5,' ');
end;
WriteLn(d1);
WriteLn;
End;
Gauss(c+1,r);
WriteLn(d1,'Полученные коэффициенты:');
WriteLn('Полученные коэффициенты:');
For i:=1 to c+1 do
begin
WriteLn(d1,' a',i,' = ', r[i,c+2]:10:5,' ');
WriteLn(' a',i,' = ', r[i,c+2]:10:5,' ');
end;
WriteLn(d1);
Writeln;
End;
Close(d1);
End.