Безусловная оптимизация
Исследование минимума функции при помощи методов алгоритма равномерного блочного поиска, метода Фибоначчи, метода касательных, метода парабол. Листинг программной реализации методов безусловной оптимизации с использованием меньшего количества итераций.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 16.09.2021 |
Размер файла | 448,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Факультет дистанционного обучения (ФДО)
Кафедра автоматизированных систем управления (АСУ)
Отчёт по лабораторной работе №1 по дисциплине «Методы оптимальных решений»
Безусловная оптимизация
Выполнил(а):
студент(ка) гр. 586П10-1
М.Ш. Набиева
«16» сентября 2021 г.
Ташкент 2021г.
Задание
Найти минимум функции: на [0,2] с точностью , при помощи следующих методов: алгоритм равномерного блочного поиска, метод Фибоначчи, метод касательных, метод парабол.
График функции:
Блок-схемы. Метод касательных.
Метод парабол.
Блочный метод
Метод Фибоначчи
Листинг программы
Метод касательных
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
double f(double x);
double f(double x)
{
return -4*x+exp(fabs(x-0.2));
}
double df(double x)
{
return -4+exp(fabs(x-0.2));
}
void main()
{ double a,b,E,N,x,y,z1,z2,y1,y2,S,z;
int i,j;
a=0;
b=2;
E=0.0015;
N=4;
y1=f(a);
z1=df(a);
y2=f(b);
z2=df(b);
clrscr();
cout<<"\nMetod kasatel`nyh.";
do{
S=((z2*b-z1*a)-(y2-y1))/(z2-z1);
y=f(S);
z=df(S);
if(z==0){ x=S; cout<<"N="<<N<<" "<<"x="<<x<<" y="<<y; getch();exit(0);}
if(z>0) { b=S; y2=y; z2=z;}
else { a=S; y1=y; z1=z;}
N=N+2;
}while((b-a)>2*E);
x=(a+b)/2;
y=f(x);
cout<<endl;
cout<<"\nReshenie:";
cout<<"\nN="<<N;
cout<<"\nx="<<x;
cout<<"\ny="<<y;getch();
}
Метод парабол
#include<iostream.h>
#include<math.h>
#include<conio.h>
double f(double x);
double f(double x)
{ return -4*x+exp(fabs(x-0.2)); }
void main()
{ double N,a,b,E,c,ya,yb,yc,yt,S,t,x,y;
int i,j;
E=0.0015;
a=0.0;b=2.0;N=3;
ya=f(a);
yb=f(b);
cout<<"\nya="<<ya;
cout<<"\nyb="<<yb;
cout<<"\nc=";cin>>c;
yc=f(c);
do{
S=c+0.5*(pow((b-c),2)*(ya-yc)-(pow((c-a),2)*(yb-yc)))/((b-c)*(ya-yc)+(c-a)*(yb-yc));
if(S==c){ t=(a+c)/2;}
else{t=S;}
yt=f(t);
if(t>c){ if(yt<yc){a=c;ya=yc;c=t;yc=yt;}
else{ b=t;yb=yt;}
}
else{ if(yt<yc){b=c;yb=yc;c=t;yc=yt;}
else{a=t;ya=yt;}
}
N++;
}while((b-a)>E);
x=(a+b)/2;y=f(x);
cout<<"\nx="<<x;
cout<<"\ny="<<y;
cout<<"\nN="<<N;
getch();
}
Блочный метод
#include<iostream.h>
#include<conio.h>
#include<math.h>
double f(double x)
{ return -4*x+exp(fabs(x-0.2));
}
void main()
{
double delta,E,x[50],y[50],a,b,n,xR,yR;
int j,i,t,l,k,N;
E=0.0015;
delta=E/100;
a=0;b=2;
clrscr();
cout<<"\nBlocks metod.";
cout<<endl;
cout<<"\nVvedite razmer bloka n=";cin>>n;
t=n;
if(t%2==0){ k=n/2; N=0;
do{ for(j=1;j<=k;j++)
{ x[2*j]=a+j*((b-a)/(k+1));
x[2*j-1]=x[2*j]-delta; }
for(i=1;i<=n;i++)
y[i]=f(x[i]);
N=N+n;
x[0]=a;
x[n+1]=b;
l=1;
for(i=2;i<=n;i++)
if(y[i]<y[l]) l=i;
a=x[l-1];
b=x[l+1];
}while((b-a)>2*E);
xR=(a+b)/2;
yR=f(xR);
cout<<"\nђҐиҐЁҐ.";
cout<<"\nN="<<N;
cout<<"\nx="<<xR;
cout<<"\ny="<<yR;
getch();
}
else{
k=(n+1)/2;
x[k]=(a+b)/2;
y[k]=f(x[k]);
N=1;
do{ for(i=1;i<=n;i++)
{x[i]=a+i*((b-a)/(n+1));
y[i]=f(x[i]);
}
for(i=1;i<=n;i++)
{if(i!=k)
y[i]=f(x[i]);
}
N=N+(n-1);
x[0]=a;
x[n+1]=b;
l=1;
for(i=2;i<=n;i++)
if(y[i]<y[l]) l=i;
a=x[l-1];
b=x[l+1];
}while((b-a)>2*E);
xR=(a+b)/2;
yR=f(xR);
cout<<"\nReshenie:";
cout<<"\nN="<<N;
cout<<"\nx="<<xR;
cout<<"\ny="<<yR;
cout<<endl;
getch();
}
}
Метод Фибоначчи
#include<iostream.h>
#include<math.h>
#include<conio.h>
double f(double x)
{ return -4*x+exp(fabs(x-0.2)); }
void main()
{
double a,b,F[16],x,y,x1,x2,y1,y2,E,delta;
int i,j,n,N,Fn;
clrscr();
E=0.0015;
n=1;
delta=E/100;
a=0;b=2;
F[0]=F[1]=1;
Fn=(b-a)/(2*E);
for(i=2;F[i]<Fn;i++)
{
F[i]=F[i-1]+F[i-2];
n++;
}
N=2;
x1=a+(F[n-2]/F[n])*(b-a);
y1=f(x1);
x2=a+(F[n-1]/F[n])*(b-a);
y2=f(x2);
j=2;
cout<<"\nMetod Fibonacci.";
cout<<endl;
do{ if(y1<=y2){ b=x2;x2=x1;y2=y1;
N++;j++;
x1=a+b-x2;
y1=f(x1);
}
else{ a=x1;x1=x2;y1=y2;
N++;j++;
x2=a+b-x1;
y2=f(x2);
}
}while(j<=n-3);
if(y1<=y2){ b=x2;x2=x1;y2=y1;}
else a=x1;
x1=x2-delta;
y1=f(x1);
N++;
if(y1<=y2) b=x2;
else a=x1;
x=(a+b)/2;
y=f(x);
cout<<"\Reshenie:";
cout<<"\nN="<<N;
cout<<"\nx="<<x;
cout<<"\ny="<<y;
getch();
}
Результаты работы программы
Метод |
x |
y |
N |
||
Блочный |
n=2 |
1,586867 |
-2,345177 |
20 |
|
n=3 |
1,585937 |
-2,345177 |
21 |
||
Фибоначчи |
1,583607 |
-2,345163 |
13 |
||
Касательных |
1,587135 |
-2,345176 |
22 |
||
Парабол c=1,59 |
1,586294 |
-2,345177 |
10 |
Вывод
безусловная оптимизация алгоритм программный
В ходе лабораторной работы была сделана программная реализация методов безусловной оптимизации.
В результате было выяснено, что метод парабол лучше всех остальных рассмотренных методов, так как он использует меньшее количество итераций.
Размещено на Allbest.ru
Подобные документы
Расчет переходного процесса на основе численных методов решения дифференциальных уравнений. Разработка математической модели и решение с использованием метода пространства состояний. Составление математической модели с помощью матрично-векторного метода.
курсовая работа [161,1 K], добавлен 14.06.2010Модель обработки радиоголографических изображений. Изображение объекта, находящегося за препятствием. Фильтр для практической реализации метода. Исследование эффективности метода пространственной фильтрации при малом поглощении и преломлении в стене.
дипломная работа [4,1 M], добавлен 19.06.2013Основные понятия оптимального проектирования. Этапы решения задачи проектирования радиоэлектронного устройства с оптимальными характеристиками с использованием методов параметрической оптимизации. Многокритериальная оптимизация в задачах с ограничениями.
реферат [89,7 K], добавлен 04.03.2009Структурный синтез и оптимизация в электронных схемах. Конструирование коэффициентов передаточной функции. Развитие метода компонентных уравнений. Преобразование подобия частных решений. Генетические и автоматизированные процедуры синтеза структур.
курсовая работа [306,1 K], добавлен 03.03.2011Методика анализа преобразования сигналов линейными цепями, их физические процессы в различных режимах. Особенности применения дискретного преобразования Фурье и алгоритма быстрого преобразования Фурье в инженерных расчетах. Выходная реакция линейной цепи.
курсовая работа [171,1 K], добавлен 19.12.2009Необходимое условие применения СВЧ-методов. Варианты схем расположения антенн преобразователя по отношению к объекту контроля. Три группы методов радиоволновой дефектоскопии: на прохождение, отражение и на рассеяние. Аппаратура радиоволнового метода.
реферат [2,8 M], добавлен 03.02.2009Алгоритм определения параметров периодических решений в нелинейной системе автоматического регулирования. Разновидности оценки устойчивости САР. Особенности использования метода гармонического баланса (метода Гольдфарба) для проведения расчетов.
контрольная работа [454,4 K], добавлен 05.11.2011Исследование спектральных характеристик электроэнцефалограммы. Гармонический анализ периодических и непериодических сигналов, их фильтрация и прохождение через нелинейные цепи. Расчёт сигнала на выходе цепи с использованием метода интеграла Дюамеля.
курсовая работа [1,7 M], добавлен 13.12.2013Визначення значень та мінімізація булевої функції за допомогою метода карт Карно і метода Квайна-МакКласки. Аналіз комбінаційної схеми методом П-алгоритму. Проектування керуючих автоматів Мілі та Мура: кодування станів, побудування таблиці переходів.
контрольная работа [58,3 K], добавлен 07.10.2013Классификация методов радиоволнового контроля диэлектрических изделий и материалов. Измеряемые параметры и принципы измерений РВК. Возможности метода модулированного отражения при технологическом контроле. Элементы и устройства волноводных трактов.
дипломная работа [1,9 M], добавлен 07.03.2011