Программа реализующая алгоритм
Контрольная работа №1, 2 По дисциплине «Методы синтеза и оптимизации»
Выполнила студентка группы ИТ 99-1з Александрова А.Н Проверила Веремей О.В.
Краматорск 2002
Задание 1 ПРОГРАММИРОВАНИЕ ЧИСЛЕННЫХ МЕТОДОВ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ
Цель задания: закрепить теоретические сведения и приобрести практические навыки разработки алгоритмов и программ для нахождения экстремальных значений функции одной переменной методом перебора с применением ЭВМ. Найти максимум и минимум функции при изменении аргумента от -4 до 3 с точностью 0,0001. Функция достигает максимума при меньших значениях аргумента. Постройте график функции. Исходные данные приведены в таблице 1.
Таблица 1
Рисунок 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
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (179)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |