Определить корни в 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.
Объяснение кода листинга программы
- Объявлены константы и переменные: a, b, eps, x, dx, x11, x12, i.
- Задана функция f(x).
- Определена функция Chord(x,y).
- Задана итерация по интервалу от a до b с шагом dx.
- Если знаки функции f(x11) и f(x12) разные, то уточняем корень методом хорд и выводим его значение.
- Увеличиваем значение x на dx и повторяем шаги 4-5 до тех пор, пока x не станет равным b.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д