Мегаобучалка Главная | О нас | Обратная связь


Программа реализующая алгоритм



2019-12-29 172 Обсуждений (0)
Программа реализующая алгоритм 0.00 из 5.00 0 оценок




Контрольная работа №1, 2

По дисциплине

«Методы синтеза и оптимизации»

 

Выполнила

студентка группы ИТ 99-1з Александрова А.Н

Проверила

Веремей О.В.

 

Краматорск 2002

 

Задание 1

ПРОГРАММИРОВАНИЕ ЧИСЛЕННЫХ МЕТОДОВ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ

 

Цель задания: закрепить теоретические сведения и приобрести практические навыки разработки алгоритмов и программ для нахождения экстремальных значений функции одной переменной методом перебора с применением ЭВМ.

Найти максимум и минимум функции при изменении аргумента от -4 до 3 с точностью 0,0001. Функция достигает максимума при меньших значениях аргумента. Постройте график функции.

Исходные данные приведены в таблице 1.

 

Таблица 1

Номер варианта A B С D
6 1,5 0,4 -5,6 -10,8

 


 

 


Рисунок 1 – блок-схема метода

Решение задачи на ЭВМ с графиком исследуемой функции

На рисунке 2 изображено решение задачи на ЭВМ с графиком функции.


 

 

Рисунок 2- результаты работы программы, график функции

Краткие выводы по работе

Задача решена методом последовательного равномерного перебора с уточнением, т.е. вначале проводится поиск с большим шагом, а при нахождении экстремума поиск повторяется в зоне экстремума с уменьшенным шагом.

Программа реализующая алгоритм

:

procedure TForm1.SpeedButton1Click(Sender: TObject);

var a,b,c,d,e,y,Ymax,Xmax,

 x0,X,Xk,Xmin,Ymin,h,k :real;

 i,n,count :integer;

 status :integer; // 0-убывание, 1-возрастание

label l1;

 

Function MOO(x:real):real;

 begin

 result:=a*x*x*x + b*x*x + c*x + d;

 end;

 

begin

 Form1.Series1.Clear;

 try // ввод начальных условий

 with form1 do

 begin

 LabelXmin.Caption:='Xmin = 0';

 LabelYmin.Caption:='Ymin = 0';

 LabelXmax.Caption:='Xmax = 0';

 LabelYmax.Caption:='Ymax = 0';

 end;

 a:=strtofloat(form1.Edit1.Text);

 b:=strtofloat(form1.Edit2.Text);

 c:=strtofloat(form1.Edit3.Text);

 d:=strtofloat(form1.Edit4.Text);

 e:=strtofloat(form1.Edit5.Text);

 h:=strtofloat(form1.Edit6.Text);

 x0:=strtofloat(form1.Edit7.Text);

 xk:=strtofloat(form1.Edit8.Text);

 k:=10;

 Ymin:=1000000000;

 Ymax:=-10000000000;

 status:=1;

 count:=1;

 except

 showMessage('Неправильно введены начальные условия');

 end;

 

l1: n:=trunc((xk-x0)/h)+1;

 x:=x0;

 for i:=1 to n do

 begin

 y:=MOO(x);

 case status of

 0: if y<Ymin then

 begin

 Ymin:=y;

 Xmin:=x;

 X:=x+h;

 end;

 1: if Y>Ymax then

 begin

 Ymax:=y;

 Xmax:=x;

 X:=x+h;

 end;

 end;

 end;

 if count <= 2 then

 if h <= e then

 begin

 with form1 do // вывод результата

 begin

 

 LabelXmin.Caption:='Xmin = '+floatTostr(Xmin);

 LabelYmin.Caption:='Ymin = '+floatTostr(Ymin);

 LabelXmax.Caption:='Xmax = '+floatTostr(Xmax);

 LabelYmax.Caption:='Ymax = '+floatTostr(Ymax);

 

 end;

 

 status :=(status+1) mod 2; //Следующий экстремум

 count:=count+1;

 x0:=Xmin;

 xk:= strtofloat(form1.Edit8.Text);

 h:=strtofloat(form1.Edit6.Text);

 goto l1;

 end

 else

 begin

 x0:=Xmin-h;

 xk:=Xmin+h;

 h:=h/k;

 goto l1;

 end;

 

 x:=strtofloat(form1.Edit7.Text);

 while x < strtofloat(form1.Edit8.Text) do

 begin

 y:=MOO(x);

 form1.Series1.AddXY(x,y);

 x:=x+0.1;

 end;

 

end;

Задание 2

 



2019-12-29 172 Обсуждений (0)
Программа реализующая алгоритм 0.00 из 5.00 0 оценок









Обсуждение в статье: Программа реализующая алгоритм

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (172)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)