0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 14

Составить подпрограмму определения максимума функции, заданной в дискретных точках

07.04.2017, 22:37. Показов 2962. Ответов 7

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!

Помогите, пожалуйста, составить на Паскале подпрограмму определения максимума функции z=f(x,y), заданной в дискретных точках
Xi = X0+ihx,
Yj=y0+jhy (i=1,nx, j=1,ny).

С ее использованием нужно найти максимумы функций
z1=6*x^2+y^2-2xy+2,
z2=2x^2+3y^2+2x+3y-3xy.

Заранее огромное спасибо! Я знаю ,что таких вопросов уже очень много, но с максимумом функции и точек не нашла... А искала действительно долго. Заранее огромное Вам спасибо!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2017, 22:37
Ответы с готовыми решениями:

Составить подпрограмму определения максимума функции, заданной в дискретных точках
Здравствуйте. Очень прошу помочь решить: Составить подпрограмму определения максимума функции z = f(х, у), заданной в дискретных...

Составить подпрограмму определения максимума функции, заданной в дискретных точках
Составить подпрограмму определения максимума функции z = f(x, y), заданной в дискретных точках xi = x0 + ihx; yi = y0 + jhy(i =1, 2, … ,...

Составить подпрограмму определения максимума функции z=f (x, у), заданной в дискретных точках
Составить подпрограмму определения максимума функции z=f(x, у), заданной в дискретных точках хi=х0+ihx , yj=у0 +jhy (i=1…nx , j=1…ny )....

7
 Аватар для Skyer
78 / 62 / 47
Регистрация: 05.05.2013
Сообщений: 196
07.04.2017, 23:44
Нужны диапазоны X и Y. Чтобы посчитать некое Xi нужно взять X0 (значение которого не задано) и знать шаг h . Обычно это (B-A)/N, где А и B начало и конец отрезка, N число разбиений.
0
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 14
07.04.2017, 23:54  [ТС]
Извините, что не указала сразу! Значения исходных данных можно выбрать любые. А информации о шаге дано не было...
0
 Аватар для Skyer
78 / 62 / 47
Регистрация: 05.05.2013
Сообщений: 196
08.04.2017, 00:21
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var
  nx,ny,i,j:integer;
  ax,bx,ay,by,x0,y0,max,maxx,maxy,hx,hy,x,y,z:real;
begin
  writeln('Введите диапазон изменения X от a до b (два числа через пробел)');
  readln(ax,bx);
  writeln('Введите диапазон изменения Y от a до b (два числа через пробел)');
  readln(ay,by);
  writeln('Введите число разбиений по X (целое)');
  readln(nx);
  writeln('Введите число разбиений по Y (целое)');
  readln(ny);
  x0 := ax;
  y0 := ay;
  hx := (bx-ax)/Nx;
  hy := (by-ay)/Ny;
  x := x0;
  y := y0;
  max := 6*sqr(x)+sqr(y)-2*x*y+2;
  for i:=0 to Nx do begin
    x := x0 + i * hx;
    for j:=0 to Ny do begin
      y := x0 + i * hx;
      z := 6*sqr(x)+sqr(y)-2*x*y+2;
      if z > max then begin
        max := z;
        maxX := x;
        maxY := y;
      end;
    end;
  end;
  writeln('maxZ = ',max);
  writeln('x = ',maxX);
  writeln('y = ',maxY);
end.
Для второй функции меняете только формулу в двух местах.
1
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
08.04.2017, 10:05
Лучший ответ Сообщение было отмечено Programistka000 как решение

Решение

Можно так. Если выводить все данные, то лучше в файл, а то на экран все не войдет.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses crt;
type func=function(x,y:real):real;
{$F+}
function z1(x,y:real):real;
begin
z1:=6*x*x+y*y+2*x*y+2;
end;
function z2(x,y:real):real;
begin
z2:=2*x*x+3*y*y+2*x+3*y-3*x*y;
end;
{$F-}
procedure max(z:func;x0,y0,hx,hy:real;n:integer;var max:real);
var x,y,t:real;
    i,j:integer;
begin
max:=z(x0,y0);
x:=x0;
for i:=1 to n do
 begin
  y:=y0;
  for j:=1 to n do
   begin
    t:=z(x,y);
    if t>max then max:=t;
    y:=y+hy;
   end;
  x:=x+hx;
 end;
end;
var x0,y0,hx,hy,mx1,mx2:real;
    n:integer;
begin
clrscr;
write('Введите начало диапазона по Х x0=');
readln(x0);
write('Введите шаг по Х hx=');
readln(hx);
write('Введите начало диапазона по Y y0=');
readln(y0);
write('Введите шаг по Y hy=');
readln(hy);
writeln('Функция z1=6x^2+y^2-2xy+2');
max(z1,x0,y0,hx,hy,n,mx1);
writeln('Максимум=',mx1:0:3);
writeln('Функция z2=2x^2+3y^2+2x+3y-3xy');
max(z2,x0,y0,hx,hy,n,mx2);
writeln('Максимум=',mx2:0:3);
readln
end.
Добавлено через 1 минуту
Цитата Сообщение от Skyer Посмотреть сообщение
writeln('Введите диапазон изменения X от a до b (два числа через пробел)');
* readln(ax,bx);
Диапазон не нужно, нужно x0,y0,n и hx,hy.
1
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 14
11.04.2017, 23:44  [ТС]
Огромное Вам спасибо за такие быстрые ответы! Не могли бы Вы еще подсказать, как оформить эти подпрограммы в библиотечный модуль, а затем проверить его работу с помощью отдельной программы? Если не затруднит! Еще раз большое спасибо!!!
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
12.04.2017, 07:44
Лучший ответ Сообщение было отмечено Programistka000 как решение

Решение

Модуль.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
unit modul;
interface
type func=function(x,y:real):real;
function z1(x,y:real):real;
function z2(x,y:real):real;
procedure max(z:func;x0,y0,hx,hy:real;n:integer;var max:real);
implementation
{$F+}
function z1(x,y:real):real;
begin
z1:=6*x*x+y*y+2*x*y+2;
end;
function z2(x,y:real):real;
begin
z2:=2*x*x+3*y*y+2*x+3*y-3*x*y;
end;
{$F-}
procedure max;
var x,y,t:real;
    i,j:integer;
begin
max:=z(x0,y0);
x:=x0;
for i:=1 to n do
 begin
  y:=y0;
  for j:=1 to n do
   begin
    t:=z(x,y);
    if t>max then max:=t;
    y:=y+hy;
   end;
  x:=x+hx;
 end;
end;
end.
Программа.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses crt,modul;
var x0,y0,hx,hy,mx1,mx2:real;
    n:integer;
begin
clrscr;
write('Введите начало диапазона по Х x0=');
readln(x0);
write('Введите шаг по Х hx=');
readln(hx);
write('Введите начало диапазона по Y y0=');
readln(y0);
write('Введите шаг по Y hy=');
readln(hy);
writeln('Функция z1=6x^2+y^2-2xy+2');
max(z1,x0,y0,hx,hy,n,mx1);
writeln('Максимум=',mx1:0:3);
writeln('Функция z2=2x^2+3y^2+2x+3y-3xy');
max(z2,x0,y0,hx,hy,n,mx2);
writeln('Максимум=',mx2:0:3);
readln
end.
1
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 14
14.04.2017, 15:23  [ТС]
Большое Вам спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2017, 15:23
Помогаю со студенческими работами здесь

Cоставить подпрограмму определения максимума функции
Cоставить подпрограмму определения максимума функции y=f(x) заданной в дискретных точках отразека с постоянным шагом h. Используя ее,...

Составить подпрограмму определения минимума функции
Составить подпрограмму определения минимума функции z = f(x, y), заданной в дискретных точках xi = x0 + ihx; yi = y0 + ihy (i = 1, 2,...

Составить подпрограмму определения минимума функции y=f(x)
Привет! решите кто может!! Составить подпрограмму определения минимума функции y=f(x), заданной в дискретных точках отрезка с...

Составить подпрограмму нахождения максимума из двух чисел
Определив подпрограмму нахождения максимума из двух чисел, найти максимум из четырех заданных чисел.

Составить подпрограмму определения среднего арифметического значения
Составить подпрограмму определения среднего арифметического значения элементов одномерного массива A. Используя ее, определить среднее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который "магическим образом" сам оптимизирует код. И часто это работает - современные JIT-компиляторы творят чудеса. Но когда речь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru