В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
INNADANILOVA
INNADANILOVA
30.03.2022 06:19 •  Информатика

Напишите программу в питоне, которая находит все минимумы и максимумы функции на отрезке [-5;5] с точностью 0,001, используя метод «золотого сечения». Границы интервала для поиска каждого минимума и максимума задаются вручную. Определите координаты точек максимума и минимума заданной вам функции на этом отрезке.
ответы есть, но нужно решение.

Показать ответ
Ответ:
arti52
arti52
14.10.2020 03:48

const e=0.0001; // точность

var gold: real; // пропорция "Золотого сечения"

   a,b: real; // начало и конец отрезка

   x1,x2: real; // точки деления

   y1,y2: real; // значения целевой функции в точках деления

 

function f(x:real):real; // целевая функция

begin

f:=x*x*x-8*x+1-5*sin(x);

end;

 

begin

gold:=(sqrt(5)+1)/2;

a:=-5;

b:=5;

repeat

x1:=b-((b-a)/gold);

x2:=a+((b-a)/gold);

y1:=f(x1);

y2:=f(x2);

if(y1<=y2) then a:=x1 else b:=x2; // условие - поиск максимума

until abs(y2-y1)<e;

writeln('max(',(x1+x2)/2:0:3,',',(y1+y2)/2:0:3,')'); // середина интервала

a:=-5;

b:=5;

repeat

x1:=b-((b-a)/gold);

x2:=a+((b-a)/gold);

y1:=f(x1);

y2:=f(x2);

if(y1>=y2) then a:=x1 else b:=x2; // условие - поиск минимума

until abs(y2-y1)<e;

writeln('min(',(x1+x2)/2:0:3,',',(y1+y2)/2:0:3,')');

End.

Объяснение:

Думаю код ясен.

f(X)=x*x*x-8*x+1-5*sinx

max(-1.612,14.703) min( 1.612,-12.703)

0

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота