Студопедия

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

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

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






  • 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.