Составить подпрограмму определения минимума функции - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Составить подпрограмму определения минимума функции z = f(x, y), заданной в дискретных точках xi = x0 + ihx; yi = y0 + ihy (i = 1, 2, ..., nx; j = 1, 2, ..., ny). Используя её, найти минимумы функций: z1 = 3x2 - 2y2 + 4xy - 8x; x0 = 1; hx = 0.2; nx = 10; y0 = 2; hy = 0.1; ny = 20; z2 = 6x2 + y2 - 4x - 6y +1; x0 = 0; hx = 0.1; nx = 15; y0 = -1; hy = 0.1; ny = 10.

Решение задачи: «Составить подпрограмму определения минимума функции»

textual
Листинг программы
  1. uses crt;
  2. type func=function(x,y:real):real;
  3. {$F+}
  4. function z1(x,y:real):real;
  5. begin
  6. z1:=3*x*x-2*y*y+4*x*y-8*x;
  7. end;
  8. function z2(x,y:real):real;
  9. begin
  10. z2:=6*x*x+y*y-4*x-6*y+1;
  11. end;
  12. function min(f:func;x0,hx,y0,hy:real;nx,ny:integer):real;
  13. var z,mn:real;
  14.     i,j:integer;
  15. begin
  16. mn:=f(x0,y0);
  17. for i:=0 to nx do
  18. for j:=0 to ny do
  19.  begin
  20.   z:=f(x0+i*hx,y0+j*hy);
  21.   if z<mn then mn:=z;
  22.  end;
  23. min:=mn;
  24. end;
  25. begin
  26. clrscr;
  27. writeln('Минимум функции Z1=',min(z1,1,0.2,2,0.1,10,20):0:1);
  28. writeln('Минимум функции Z2=',min(z2,0,0.1,-1,0.1,15,10):0:1);
  29. readln
  30. end.

Объяснение кода листинга программы

  1. Подпрограмма min принимает четыре аргумента: функцию f, начальные координаты x0, y0, а также nx и ny - количество точек для проверки.
  2. Внутри функции min инициализируется переменная mn значением функции f на точках (x0, y0).
  3. Затем происходит цикл по всем точкам в пределах nx на x и ny на y. В каждой точке вычисляется значение функции f с помощью подпрограммы z.
  4. Если значение z меньше текущего значения mn, то mn обновляется значением z.
  5. По завершении цикла, значение mn возвращается из функции min.
  6. Выводится минимальное значение функции для функций Z1 и Z2 с помощью функции writeln.
  7. Выполняется вывод с помощью функции readln, чтобы пользователь мог увидеть результат.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы