Программирование с использованием методов одномерной оптимизации - Pascal

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

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

Есть код, но он неправильный, поправьте пожалуйста
Листинг программы
  1. program lab1;
  2. const dx=0.0001;
  3. function f(x:real):real;
  4. begin
  5. if x=0 then f:=-1 else
  6. if (x=1)or(x=-1) then f:=-1 else if (x<1)and(x>-1) then f:=5*(exp(ln(e)*(-x))+4*x-((exp(x)*3))/3)
  7. else f:=5*(exp(ln(e)*(-x))+4*x-((exp(x)*3))/3)
  8. end;
  9. function f1(x:real):real;
  10. begin
  11. f1:=(f(x+dx)-f(x))/dx;
  12. end;
  13. function f2(x:real):real;
  14. begin
  15. f2:=(f1(x+dx)-f1(x))/dx;
  16. end;
  17. var
  18. h,x,x1,a,b:real;
  19. begin
  20. writeln('введите х');
  21. read(x);
  22. writeln('введите шаг поиска отрезка');
  23. read(h);
  24. if (f(x-h)>=f(x))and(f(x)<=f(x+h)) then begin a:=x+h; b:=x-h;end else
  25. begin
  26. if (f(x-h)>=f(x))and(f(x)>=f(x+h)) then x1:=x+h else
  27. if (f(x-h)<=f(x))then begin x1:=x-h;h:=(-1)*h;end;
  28. while f(x1)<=f(x) do
  29. begin
  30. x:=x1;
  31. x1:=x+h;
  32. writeln('x=',x,' x1=',x1);
  33. end;
  34. writeln('h=',h);
  35. if h>0 then begin a:=x+h;b:=x-h;end
  36. else begin a:=x-h;b:=x+h;end;
  37. end;
  38. writeln('a=',a:0:3,' b=',b:0:3);
  39. x:=a;
  40. while f1(x)>0.00001 do
  41. begin
  42. x:=x-(f1(x)/f2(x));
  43. writeln(x,' ',f1(x));
  44. end;
  45. writeln('точка min=',x:0:4);
  46. end.
Найти минимум функции методом Ньютона.

Решение задачи: «Программирование с использованием методов одномерной оптимизации»

textual
Листинг программы
  1. function f(x: real): real;
  2. begin
  3.   f := 5 * exp(-x) + 4 * x - x * x * x / 3
  4. end;

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

  1. Объявляется функция f с параметром x типа real, которая возвращает значение типа real.
  2. Внутри функции вычисляется результат по формуле 5 * exp(-x) + 4 * x - x * x * x / 3.
  3. Результат данной формулы помещается в переменную f.
  4. Значение переменной f возвращается в качестве результата функции.

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


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

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

12   голосов , оценка 4.417 из 5

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

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

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