Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Пусть имеется уравнение F(x)=0, причем все корни находятся на отрезке [ a, b ]. Будем вычислять все значения функции y=F(x), начиная с точки x=a, двигаясь вправо шагом h. Если функция на отрезке длины h меняет знак (т.е. F(a)F(b)< 0) и монотонна, можно считать, что на этом отрезке ровно 1 корень.

 


Правильность нахождения отрезков, содержащих один корень, зависит от характера функции y=F(x) и от величины шага h. При выборе шага должна соблюдаться «золотая середина», т.к. шаг h должен быть с одной стороны достаточно малым, чтобы не произошло потери корней, а с другой стороны не настолько маленьким, чтобы число отрезков не было слишком большим.

 

 

Блок-схема отделения корней:
 

 

Программа отделения корней:

program otd_korn;

var x1, x2, a, b, h: real;

function f(x: real): real;

begin {записать, функцию в виде f: =[математическое выражение]} f: =x*x*x-x+4;

end;

begin

write('Введите левую границу отрезка - a: '); readln(a);

write('Введите правую границу отрезка - b: '); readln(b);

write('Введите шаг - h: '); readln(h);

x1: =a; x2: =x1+h;

while x2< b do

begin

if f(x1)*f(x2)< 0

then writeln('[ ', x1: 6: 2, ', ', x2: 6: 2, ' ]');

x1: =x2; x2: =x1+h;

end;

readln;

end.








© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.