Составить подпрограмму определения минимума функции - 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
Листинг программы
uses crt;
type func=function(x,y:real):real;
{$F+}
function z1(x,y:real):real;
begin
z1:=3*x*x-2*y*y+4*x*y-8*x;
end;
function z2(x,y:real):real;
begin
z2:=6*x*x+y*y-4*x-6*y+1;
end;
function min(f:func;x0,hx,y0,hy:real;nx,ny:integer):real;
var z,mn:real;
    i,j:integer;
begin
mn:=f(x0,y0);
for i:=0 to nx do
for j:=0 to ny do
 begin
  z:=f(x0+i*hx,y0+j*hy);
  if z<mn then mn:=z;
 end;
min:=mn;
end;
begin
clrscr;
writeln('Минимум функции Z1=',min(z1,1,0.2,2,0.1,10,20):0:1);
writeln('Минимум функции Z2=',min(z2,0,0.1,-1,0.1,15,10):0:1);
readln
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
Похожие ответы