Цель задания: закрепить теоретические сведения и приобрести практические навыки разработки алгоритмов и программ для нахождения экстремальных значений функции одной переменной методом перебора с применением ЭВМ. Найти максимум и минимум функции при изменении аргумента от -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 // ввод начальных условий withform1 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 yYmax 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;
Рефераты по информатикеЦель задания: закрепить теоретические сведения и приобрести практические навыки разработки алгоритмов и программ для нахождения экстремальных
Оценок: 286 (Средняя 5 из 5)
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.