Программа
' Поиск корня уравнения
' методом половинного деления
' (меод дихотомии)
DECLARE FUNCTION Root! (a!, b!)
DEF FnF (X) = X * X - 100 ' Вычисление функции
' Ввод интервала локализации корня:
INPUT "Введите левую границу интервала локализации корня ", a
INPUT "Введите правую границу интервала локализации корня ", b
Result = Root(a, b) ' Вычисление корня
PRINT "x="; Result; " F(x)="; FnF(Result) ' Вывод корня и проверки
END
FUNCTION Root (a, b) ' Нахождение корня
Eps = 0 ' Точность вычислений
WHILE ABS(b - a) > Eps ' Сужение интервала до заданной точности
c = (a + b) / 2 ' Определение средней точки интервала локализации корня
IF (c = a) OR (c = b) THEN
a = c: b = c ' Блокирование сбоя при потере точности
ELSEIF FnF(a) * FnF(c) < 0 THEN ' Если функция меняет знак
' на левом участке, то переопределение правой границы
b = c
ELSEIF FnF(b) * FnF(c) < 0 THEN ' иначе - если функция меняет знак
' на правом участке то переопределение левой границы
a = c
ELSE ' Блокирование сбоя при потере точности
' или случайном нахождении корня :
IF FnF(a) = 0 THEN c = a: b = a
IF FnF(b) = 0 THEN c = b: a = b
IF FnF(a) * FnF(b) * FnF(c) = 0 THEN a = c: b = c
END IF
WEND
Root = (a + b) / 2 ' Определение значения функции
END FUNCTION
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию