Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
С использованием векторных операций. disp('значения x');
xn=-1; xk=1; h=0.1; x= xn:h:xk; f=cos(x).^2; disp('значения x'); disp(sprintf('%4.1f', x)) disp('значения f'); disp(sprintf('%7.2f',f))
Задача 9. Поиск максимального значения функции Условие задачи. Найти максимальное из n значений функции на отрезке от a до b, где х изменяется с шагом . Задача поиска максимального или минимального из множества значений встречается достаточно часто. Для поиска максимума поступают следующим образом. Выделяют переменную, которая будет хранить временное значение максимума, назовём её max. Сначала ей присваивают одно из проверяемых значений, оно может быть любым из них, чаще всего берут первое по порядку (можно также взять число, заведомо меньшее, чем все проверяемые значения, если известен возможный диапазон этих значений). Далее все остальные значения проверяемого множества сравниваются со значением переменной max, она служит эталоном для сравнения, и, как только встречается большее значение, то оно заносится в переменную max. Таким образом, в каждый момент она хранит наибольшее из проверенных к этому времени значений, а к концу проверок – самое большое из всех значений. Исходными данными в этой задаче являются границы изменения аргумента функции х (вещественные а и b) и количество значений функции (целочисленное n), которое нужно получить и проверить на отрезке от а до b. Чтобы получить n значений функции, нужно в цикле изменять аргумент х от а до b с постоянным шагом h. Поскольку требуемое количество значений функции известно (n), то проще всего использовать арифметический цикл, или «цикл с предопределённым количеством выполнений». До начала цикла следует вычислить значение шага изменения аргумента х по формуле , установить начальное значение аргумента х=а и, вычислив первое значение функции , взять его за начальное значение максимума. Далее в цикле n -1 раз (так как одно значение уже найдено и учтено) повторяется следующая последовательность действий: вычисляется следующее значение аргумента x=x+h, вычисляется очередное значение функции и сравнивается с текущим значением максимума - если оно больше max, то его значение заносится в переменную max. По окончании цикла в переменной max останется самое большое из всех проверенных значений, оно и будет искомым результатом.
Структурированная запись алгоритма 9 1. Ввести a, b и n. 2. Вычислить h=(b-a)/(n-1). 3. Задать начальные значения x=a и max=2*sin(a)+cos(2*a). 4. Повторять в цикле n-1 раз: 4.1. Вычислить следующее значение аргумента x=x+h и функции f= 2*sin(x)+ cos (2* x). 4.2. Проверить: если f>m a x, то max=f 5. Вывести результат max. Схема алгоритма 9
Программа на языке Си #include <stdio.h> #include <math.h> int main (void) { double a, b, x, h, f, max; int i, n; printf (״Введите n\n”); scanf (״%d”, &n); printf (²Введите границы отрезка a и b\n”); scanf (²%lf%lf”, &a, &b); h=(b-a)/(n-1); max=2*sin(a)+cos(2*a); x=a; for (i=2; i<=n; i++) { x+=h; f=2*sin(x)+log(x); if (f>max) max=f; } printf (²Максимальное значение функции на \ return 0; } Программа на языке Паскаль Program Main_9; Var i, n: integer; a, b, h, f, max: real; begin writeln(' Введите а, b и n'); readln(a, b, n); h:=(b-a)/(n-1); x:=a; max:=2*sin(a)+cos(2*a); for i:=1 to n-1 do begin x:=x+h; f:=2*sin(x)+cos(2*x); if f>max then max:=f; end; writeln('max=', max:5:3); end. Программа на языке Фортран Program main_9 Implicit none integer i, n real a, b, h, f, max print *, 'Введите а, b и n' read *, a, b, n h=(b-a)/(n-1) x=a max=2*sin(a)+cos(2*a) do i=1,n-1 x=x+h f=2*sin(x)+cos(2*x) if (f>max) max=f enddo print *,'max=', max end program Программа на языке Python from math import sin from math import cos print("Введите a, b, n по одному в строке, “) print(“a <= b, n - натуральное:") a=float(input()) b=float(input()) n=int(input()) h=(b-a)/(n-1) x=a max=2*sin(x)+cos(2*x) for i in range(n-1): # i = 0, 1,..., n-2 - всего n-1 Значений x = x + h f = 2*sin(x)+cos(2*x) if f > max: max = f print("max = ", max) Программа в системе Матлаб a= input('a='); b= input('b='); n= input('n='); h=(b-a)/(n-1); x=a; max=2*sin(x)+cos(2*x); for i=1:n-1 x = x + h; f = 2*sin(x)+cos(2*x); if (f > max) max = f; end end disp('max=') disp(max)
|
|||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 76; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.10.137 (0.009 с.) |