Метод хорд. Замена не линейной функции линейной на данном отрезке

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Теория

Суть метода состоит в замене не линейной функции линейной на данном отрезке. В качестве линейной функции берётся хорда, проходящая через концы A и B. Точка пересечения хорды с точкой Х принимается за новый конец отрезка. Процесс повторяется до тех пор пока не будет найдено значение корня с заданной степенью точности. Применение метода Хорд зависит от того, какая функция будет рассматриваться на отрезке. Если функция возрастающая при выполнении условия: F(b)*F’’(b)>0, то применяется формула: . Если функция убывающая при выполнении условия F(a)*F”(a)<0, то применяется формула: .

Условия прекращения: , где Е – наперёд заданная степень точности.


Блок-схема


Текст программы

program metod_hord;

function f(x:real):real;

begin

f:=sqr(x)*sqr(x)*x+3*(sqr(x))+x;

end;

function f1(x:real):real;

begin

f1:=5*sqr(x)*sqr(x)+6*x+1;

end;

function f2(x:real):real;

begin

f2:=20*sqr(x)*x+6;

end;

var

a,b:real;

x:real;

c:real;

q:string;

Begin

repeat

writeln ('Vvedite nachalo i konec otrezka');

repeat

write ('a= ');

{$I-}

readln (a);

{$I+}

until IOResult=0;

repeat

write ('b= ');

{$I-}

readln (b);

{$I+}

until IOResult=0;

if (a=0) and (b=0) then

begin

writeln ('Oshibka pri vvode znacheni');

end

else

begin

if f(b)*f2(b)>0 then

begin

c:=a;

x:= c-((f(c)*(b-c))/(f(b)-f(c)));

end

else

begin

c:=b;

x:= c+((f(c)*((-a)+c))/(-f(a)-f(c)));

end;

writeln ('X= ',x:5:5);

readln;

end;

writeln ('Hotite povtorit ?');

writeln ('y/n');

readln (q);

until q='n';

End.

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.