Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ИТЕРАЦИОННЫЕ ЦИКЛЫ. УТОЧНЕНИЕ КОРНЕЙ УРАВНЕНИЙ МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ
Пример составления програмы Пусть необходимо найти корень уравнения на интервале [0; 1] с погрешностью методом половинного деления. Схема алгоритма, реализующего данный метод, представлена на рисунке, где . Как показано на схеме, в начале алгоритма обеспечивается ввод начальных границ интервала и заданной погрешности вычислений (блок 1). Затем перед входом в цикл (блок 2) вычисляется значение функции в точке a. В начале цикла (блок 3) вычисляется координата середины отрезка и значение функции в точке x (блок 4). В логическом блоке 5 определяется половина интервала, содержащая корень. Затем (блоки 6, 7) задается новая граница интервала. Когда в точку x сдвигается левая граница a интервала [a, b], то значение функции можно не вычислять, а принять его равным ранее вычисленному . Если величина полученного интервала превышает заданную погрешность, то обеспечивается повторение цикла (блок 8). В качестве результата выводится (блок 9) найденное значение корня x и контрольное значение функции в данной точке z, которое по определению должно быть близко к нулю. Текст программы для решения уравнения методом половинного деления будет иметь следующий вид: {Цель - уточнение корня } {Переменные: } { eps – допустимая } { погрешность; } { x – приближение корня; } { a, b – границы интервала; } { y – значение функции на } { левой границе; } { z - значение функции в } { середине отрезка. } {Метод – половинного деления } {Подпрограммы: } { F – исследуемая функция } {Программист: } { ст. гр. 571 Петров П.П. } {Проверил: доцент Парфилова Н.И.} {Дата - 10.01.06 г. } Program Halving; Var a, b, eps, x, y, z :real; {Описание исследуемой функции} { F – имя функции } { x – аргумент функции } FunctionF(x :real) :real; Begin{F} F := 5*x*x*x + 10*x*x + 5*x – 1 End; {F} Begin{Halving} {Ввод и эхо-печать исходных данных } WriteLn(‘Введите границы интервала и погрешность’); Read(a, b, eps); WriteLn(‘В интервале:’; a:6:2, ‘,’, b:6:2); WriteLn(‘с погрешностью:’, eps:9:6); {Реализация метода половинного деления} y := F(a); repeat {Начало цикла} x := (a+b)/2; z := F(x) if y*z < 0 then b := x else begin a := x; y := z end; until b –a <= eps; {Конец цикла} WriteLn(‘корень:’,x:10:6, ‘ f(x)=’, z) End. {Halving} Задания Для заданного уравнения и заданного интервала, содержащего один корень, используя метод половинного деления, уточнить корень нелинейного уравнения с точностью до . На экран дисплея вывести границы интервала, получаемые при его делении пополам (для всех вариантов число таких интервалов не превышает 18). После выхода из итерационного цикла корень считать равным середине интервала и провести проверку путем подстановки в исходное уравнение, чтобы убедиться в правильности нахождения корня. В исходном уравнении целесообразно оформить в виде функции пользователя.
Тема 13 ИТЕРАЦИОННЫЕ ЦИКЛЫ. УТОЧНЕНИЕ КОРНЕЙ УРАВНЕНИЙ МЕТОДОМ ИТЕРАЦИЙ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 264. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |