Определить корни в Free Pascal и сделать блок-схему

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

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

Определить корни с заданной точностью e=0.001: 5*sin^2*(2x)+x^2/4-4=0 [-3;3] Методом хорд

Решение задачи: «Определить корни в Free Pascal и сделать блок-схему»

textual
Листинг программы
const a=-3;
      b=3;
      eps=0.001;
function f(x:real):real;
begin
f:=5*sqr(sin(2*x))+x*x/4-4;  //заданная функция
end;
function Chord(x,y:real):real;//функция уточнения корня методом хорд
begin
while abs(x-y)>eps do
 begin
  x:=y-(y-x)*f(y)/(f(y)-f(x));
  y:=x+(x-y)*f(x)/(f(x)-f(y));
 end;
Chord:=y;
end;
 
var x,dx,x11,x12:real;
    i:integer;
begin
dx:=0.1; //идем по интервалу с шагом 0.1
x:=a;
i:=0;
while x<=b do
 begin
  x11:=x;
  x12:=x+dx;
  if F(x11)*F(x12)<0 then //если знаки функции разные на концах отрезка
   begin
    i:=i+1;
    writeln('X',i,'=',Chord(x11,x12):6:3);//уточняем корень
   end;
  x:=x+dx;
 end;
end.

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

  1. Объявлены константы и переменные: a, b, eps, x, dx, x11, x12, i.
  2. Задана функция f(x).
  3. Определена функция Chord(x,y).
  4. Задана итерация по интервалу от a до b с шагом dx.
  5. Если знаки функции f(x11) и f(x12) разные, то уточняем корень методом хорд и выводим его значение.
  6. Увеличиваем значение x на dx и повторяем шаги 4-5 до тех пор, пока x не станет равным b.

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


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

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

6   голосов , оценка 4.5 из 5
Похожие ответы