Минимизация функций одной переменной

Автор работы: Пользователь скрыл имя, 29 Октября 2012 в 11:35, курсовая работа

Краткое описание

Под одномерной минимизацией понимается раздел численных методов, связанных с вычислением (или оценкой) минимума одномерной функции действительной переменной, заданной, как правило, на некотором ограниченном отрезке найти min f(x)=f(x*), (1.1)
axb
где x*-искомая точка минимума на [a, b].

Содержание

1. МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ 3
1.1. НЕОБХОДИМЫЕ СВЕДЕНИЯ ИЗ МАТЕМАТИКИ 3
1.1.1. Постановка задачи одномерной минимизации 3
1.1.2. Классификация одномерных функций 4
1.1.3. Ряд Тейлора 6
1.1.5. Замечания относительно глобального минимума 12
1.2. МЕТОДЫ ИСКЛЮЧЕНИЯ ИНТЕРВАЛОВ 13
1.2.1. Метод деления пополам 13
Алгоритм Свенна для поиска интервала унимодальности 13
Алгоритм деления пополам 14
1.2.2. Метод золотого сечения 15
1.2.3. Сравнение методов исключения интервалов 17
1.3. ПОЛИНОМИАЛЬНАЯ АППРОКСИМАЦИЯ 18
1.3.1. Квадратичная аппроксимация 18
Алгоритм последовательной квадратичной аппроксимации 22
1.3.2. Кубическая аппроксимация 25
1.4. МЕТОДЫ С ИСПОЛЬЗОВАНИЕМ ПРОИЗВОДНЫХ 28
1.4.1. Метод Ньютона-Рафсона 28
1.4.2. Методы средней точки и секущих 30
1.4.3. Численная аппроксимация производных 31
Расчет коэффициентов аппроксимации в Microsoft Excel. 35
Построение графиков в Excel и использование функции ЛИНЕЙН. 44
Программа на языке Pascal. 47
Схема алгоритма. 47
Результаты расчета Pascal. 53
Заключение. 54
Список литературы 55

Вложенные файлы: 1 файл

Качковский.doc

— 1.32 Мб (Скачать файл)

Схема алгоритма.


Рис.5.1. Блок-схема

 

 

program Kramer;

uses CRT;

const

n=25;

type

TArrayXY = array[1..2,1..n] of real;

TArray = array[1..n] of real;

var

SumX,SumY,SumX2,SumXY,SumX3,SumX4,SumX2Y,SumLnY,SumXLnY: real;

OPRlin,OPRkvadr,OPRa1,OPRa2,OPRa3:real;

a1lin,a2lin,a1kvadr,a2kvadr,a3kvadr,a1exp,a2exp,cexp:real;

Xsr,Ysr,S1,S2,S3,Slin,Skvadr,Sexp:real;

Kkor,KdetLin,KdetKvadr,KdetExp:real;

i:byte;

const

ArrayXY:TArrayXY=((12.85,12.32,11.43,10.59,10.21,9.65,9.63,9.22,8.44,8.07,7.74,7.32,7.08,6.87,5.23,5.02,4.65,4.53,3.24,2.55,1.86,1.76,1.11,0.99,0.72) , (154.77

145.59,108.37,100.76,98.32,81.43,80.97,79.04,61.76,60.54,55.86,47.63,48.03,36.85,25.65,24.98,22.87,20.32,9.06,6.23,3.91,3.22,1.22,1.10,0.53));

begin

ClrScr;

SumX:=0.0;

SumY:=0.0;

SumXY:=0.0;

SumX2:=0.0;

SumX3:=0.0;

SumX4:=0.0;

SumX2Y:=0.0;

SumLnY:=0.0;

SumXLnY:=0.0;

{ Вычисление сумм x, y, x*y, x^2, x^3, x^4, (x^2)*y, Ln(y), x*Ln(y) }

for i:=1 to n do

  begin

   SumX:=SumX+ArrayXY[1,i];

   SumY:=SumY+ArrayXY[2,i];

   SumXY:=SumXY+ArrayXY[1,i]*ArrayXY[2,i];

   SumX2:=SumX2+sqr(ArrayXY[1,i]);

   SumX3:=SumX3+ArrayXY[1,i]*ArrayXY[1,i]*ArrayXY[1,i];

   SumX4:=SumX4+sqr(ArrayXY[1,i])*sqr(ArrayXY[1,i]);

   SumX2Y:=SumX2Y+sqr(ArrayXY[1,i])*ArrayXY[2,i];

   SumLnY:=SumLnY+ln(ArrayXY[2,i]);

   SumXLnY:=SumXLnY+ArrayXY[1,i]*ln(ArrayXY[2,i])

  end;

{ Вычисление коэффициентов }

OPRlin:=0.0;

a1lin:=0.0;

a2lin:=0.0;

a1kvadr:=0.0;

OPRkvadr:=0.0;

a2kvadr:=0.0;

a2kvadr:=0.0;

a1exp:=0.0;

a2exp:=0.0;

OPRlin:=n*SumX2-SumX*SumX;

a1lin:=(SumX2*SumY-SumX*SumXY)/OPRlin;

a2lin:=(n*SumXY-SumX*SumY)/OPRlin;

OPRkvadr:=n*SumX2*SumX4+SumX*SumX3*SumX2+SumX2*SumX*SumX3-     SumX2*SumX2*SumX2-n*SumX3*SumX3-SumX*SumX*SumX4;

a1kvadr:=(SumY*SumX2*SumX4+SumX*SumX2Y*SumX3+SumX2*SumXY*SumX3- SumX2*SumX2*SumX2Y-SumY*SumX3*SumX3-SumX*SumXY*SumX4)/OPRkvadr;

a2kvadr:=(n*SumXY*SumX4+SumY*SumX3*SumX2+SumX2*SumX*SumX2Y-SumX2*SumX2*SumXY-n*SumX3*SumX2Y-SumY*SumX*SumX4)/OPRkvadr;

a3kvadr:=(n*SumX2*SumX2Y+SumX*SumXY*SumX2+SumY*SumX*SumX3-SumY*SumX2*SumX2-n*SumXY*SumX3-SumX*SumX*SumX2Y)/OPrkvadr;

a2exp:=(n*SumXLnY-SumX*SumLnY)/OPRlin;

cexp:=(SumX2*SumLnY-SumX*SumXLnY)/OPRlin;

a1exp:=exp(cexp);

{ Вычисление  средних арифметических x и y }

 Xsr:=SumX/n;

Ysr:=SumY/n;

S1:=0.0;

S2:=0.0;

S3:=0.0;

Slin:=0.0;

Skvadr:=0.0;

Sexp:=0.0;

Kkor:=0.0;

KdetLin:=0.0;

KdetKvadr:=0.0;

KdetExp:=0.0;

 

for i:=1 to n do

  begin

   S1:=S1+(ArrayXY[1,i]-Xsr)*(ArrayXY[2,i]-Ysr);

   S2:=S2+sqr(ArrayXY[1,i]-Xsr);

   S3:=S3+sqr(ArrayXY[2,i]-Ysr);

   Slin:=Slin+sqr(a1lin+a2lin*ArrayXY[1,i]-ArrayXY[2,i]);

Skvadr:=Skvadr+sqr(a1kvadr+a2kvadr*ArrayXY[1,i]+a3kvadr*ArrayXY[1,i]*ArrayXY[1,i]-ArrayXY[2,i]);

   Sexp:=Sexp+sqr(a1exp*exp(a2exp*ArrayXY[1,i])-ArrayXY[2,i]);

  end;

{ Вычисление  коэффициентов корреляции и детерминированности }

 Kkor:=S1/sqrt(S2*S3);

KdetLin:=1-Slin/S3;

KdetKvadr:=1-Skvadr/S3;

KdetExp:=1-Sexp/S3;

{ Вывод результатов  }

 WriteLn('Линейная функция');

 WriteLn('a1=',a1lin:8:5);

WriteLn('a2=',a2lin:8:5);

 WriteLn('Квадратичная функция');

 WriteLn('a1=',a1kvadr:8:5);

WriteLn('a2=',a2kvadr:8:5);

WriteLn('a3=',a3kvadr:8:5);

WriteLn('Экспоненциальная функция');

WriteLn('a1=',a1exp:8:5);

WriteLn('a2=',a2exp:8:5);

WriteLn('c=',cexp:8:5);

WriteLn('Xcp=',Xsr:8:5);

WriteLn('Ycp=',Ysr:8:5);

WriteLn('Коэффициент корреляции ',Kkor:8:5);

 WriteLn('Коэффициент детерминированности (линейная аппроксимация) ',KdetLin:2:5);

WriteLn('Коэффициент  детерминированности (квадратическая  аппроксимация) ',KdetKvadr:2:5);

WriteLn('Коэффициент  детерминированности (экспоненциальная  аппроксимация) ',KdetExp:2:5);

end.

 

 Результаты расчета Pascal.

 

Коэффициенты  линейной функции

a1=-24.73516

a2=11.63471

 

Коэффициенты  квадратичной функции

a1= 1.59678

a2=-0.62145

a3= 0.95543

 

Коэффициенты  экспоненциальной функции

a1= 1.65885

a2= 0.40987

c= 0.50613

Xcp= 6.52320

Ycp=51.16040

 

Коэффициент корреляции  0.96196

Коэффициент детерминированности (линейная аппроксимация) 0.92537

Коэффициент детерминированности (квадратическая аппроксимация) 0.99409

Коэффициент детерминированности (экспоненциальная аппроксимация) 0.02691

 

Заключение.

Сделаем заключение по результатам полученных данных:

1. Анализ результатов расчетов  показывает, что квадратичная аппроксимация  наилучшим образом описывает  экспериментальные данные т.к.  согласно таблице 8 коэффициент корреляции - 0,9620; Коэффициенты детерминированности линейной аппроксимации - 0,9253; квадратической аппроксимации – 0,994; экспоненциальной аппроксимация – 0,0269.

2. Сравнивая результаты, полученные  при помощи функции ЛИНЕЙН  видим что они полностью совпадают  с вычислениями, проведенными выше. Это указывает на то, что вычисления верны.

3. Полученное при построении  линии тренда значение коэффициента  детерминированности для экспоненциальной зависимости не совпадает с истинным значением поскольку при вычислении коэффициента детерминированности используются не истинные значения y, а преобразованные значения ln(y) с дальнейшей линеаризацией.

4. Результаты полученные с помощью  программы на языке PASCAL полностью совпадают со значениями приведенными выше. Это говорит о верности вычислений.

 

Список литературы

1. Самарский А.А., Гулин А.В.  Численные методы: Учеб. пособие для вузов.—М.: Наука, 1989 г.

2. Бахвалов Н.С.  Численные методы. – М.: Наука, 1975 г.

3. Д.Каханер,  К.Моулер, С.Нэш.  Численные методы  и программное обеспечение.–М.:Мир,2001.–575с.

4. Вержбицкий  В.М. Численные методы. (линейная алгебра и нелинейные уравнения).- М.: Высшая школа, 2000.- 266с.

5. Сборник задач  по методам вычислений. (под ред.  Монастырного П.И.) - М.: Наука, 1994. - 320с.

 

 

 


Информация о работе Минимизация функций одной переменной