Паскаль. Основы программирования


           

Введите точность вычисления второй производной


     write('вторая производная '); readln(x0);

     write(' Введите точность вычисления второй производной ');

     readln(eps);

     dy := derivat2(x0, eps);

     write('Вторая производная функции в точке ', x0:6:t(eps));

     writeln(' равна ', dy:6:t(eps));

     writeln('с точностью до ', eps:1:t(eps))

   end.

К заданию 3

{ Выбор метода решения уравнений: метод хорд, метод касательн. }

{ комбинированный метод }

Program Case_method;

   uses WinCrt;

   var

     a, b, x, eps : real;

     k                : integer;

{----------------------------------------------------------------------------------------}

   { Заданная функция }

   Function fx(x : real) : real;

      begin

        fx := x*sin(x) - 0.5

      end;

{----------------------------------------------------------------------------------------}

{ Функция вычисления порядка - кол-во знаков после запятой }

   Function t(eps : real) : integer;

      var

        k : integer;

      begin

        k := -1;

        repeat

          eps := eps*10;

          k := k + 1

        until eps > 1;

        t := k

      end;

{----------------------------------------------------------------------------------------}

   { Вычисление 1-й производной }

  Function derivat1(x0, eps : real) : real;

      var

        dx, dy, dy2 : real;

      begin

        dx := 1;

        repeat

          dx := dx/2;

          dy := fx(x0 + dx/2) - fx(x0 - dx/2);

          dy2 := fx(5*x0/4 + dx) - 2*fx(5*x0/4);

          dy2 := dy2 + fx(5*x0/4 - dx)

        until abs((dy2*dy2*fx(x0))/(2*dx)) < eps;

        derivat1 := dy/dx

      end;

{----------------------------------------------------------------------------------------}

{ Вычисление 2-й производной }

   Function derivat2(x0, eps : real) : real;

      var

        dx, dy, dy3 : real;

      begin

        dx := 1;

        repeat

          dx := dx/2;

          dy := fx(x0 + dx) - 2*fx(x0) + fx(x0 - dx);

          dy3 := fx(5*x0/4 + 2*dx) - 2*fx(5*x0/4 + dx);


Содержание  Назад  Вперед