Поиск экстремумов функции одной переменной — Pascal
Ребята, сдавать через пару дней. а я хз как делать такую фигню((( на паскале надо запрогать, выручите. там кода не очень много. Вот задание: Составьте программу вычисления максимума F(x) на интервале [ A,B ] с точностью E (значения A, B и E должны вводиться с клавиатуры в процессе выполнения программы; способ задания значения N предоставляется на усмотрение составителя программы).
Для функции функция: Cos( x- 3П / 4) / З.ы. Желательно чтобы решение было реализовано по этому алгоритму. Одно из возможных решений задачи для «гладкой» (медленно изменяющейся, без скачков) функции состоит в разбиении интервала [A , B] на фиксированное число N ( 10, 20, 100 ? ) частей длиной H=(B-A)/N , вычислении F(x) в соответствующих N+1 точках и запоминании наибольшего(наименьшего) из этих значений и соответствующей точки «экстремума» Z. После этого за очередной интервал разбиений выбирается окрестность найденной точки (Z-H , Z+H), если Z отлична от концов исходного интервала, и (A , A+H) или (B-H , B) в противном случае. Такой процесс продолжается до тех пор, пока очередной интервал не станет меньше заданной точности. Объем вычислений здесь не слишком велик (указанная выше точность поиска точки при N=10 будет обеспечена 60 вычислениями).
АЛГЕБРА С НУЛЯ — Точки Экстремума Функции
Код к задаче: «Поиск экстремумов функции одной переменной»
Листинг программы
uses crt; function F(x:real):real; begin F:=cos(x-3*pi/4); end; function Max(a,b,e:real;n:byte):real; var h,z,x,y:real; i:byte; begin z:=F(a); repeat h:=(b-a)/n; for i:=1 to n+1 do begin y:=F(a+i*h); if y>z then z:=y; end; if (z>a)and(za)and(za; repeat write(‘Введите точность(0;1) e=’); readln(e); until(e>0)and(e<1); repeat write(‘Введите количество разбиений >0 n=’); readln(n); until n>0; writeln(‘max=’,Max(a,b,e,n):0:5); writeln(‘min=’,Min(a,b,e,n):0:5); readln end.
Источник: studassistent.ru
Как найти максимум и минимум функции для заданного интервала?
Есть ли в библиотеке SymPy метод для вычисления минимума и максимума заданной функции на отрезке?
from sympy import * x = Symbol(«x») x1 = -5 x2 = 5 f = x**2
Необходимо найти экстремумы функции f в промежутке от x1 до x2
Отслеживать
149k 12 12 золотых знаков 58 58 серебряных знаков 131 131 бронзовый знак
задан 7 дек 2019 в 22:51
21 1 1 серебряный знак 2 2 бронзовых знака
10 дек 2019 в 6:53
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
from sympy import solveset, symbols, Interval, Min, Max x = symbols(‘x’) lower_bound = -5 upper_bound = 5 f = x**2 zeros = solveset(f, x, domain=Interval(lower_bound, upper_bound)) assert zeros.is_FiniteSet # If there are infinite solutions the next line will hang. res_min = Min(f.subs(x, lower_bound), f.subs(x, upper_bound), *[f.subs(x, i) for i in zeros]) res_max = Max(f.subs(x, lower_bound), f.subs(x, upper_bound), *[f.subs(x, i) for i in zeros])
In [29]: res_min Out[29]: 0 In [30]: res_max Out[30]: 25
from sympy.calculus.util import minimum, maximum interv = Interval(-5, 5) res_min = minimum(f, interv) res_max = maximum(f, interv)
Источник: ru.stackoverflow.com