Выполнила: студентка 1 курса группа 10-ИУК-30
Сорокина Екатерина
Проверил преподаватель: Максименко
Людмила Сергеевна
Москва 2011 г.
Математическая постановка задачи.
Уточнить корень уравнения, используя следующие методы:
-метод дихотомии (деление отрезка пополам);
-метод Ньютона (метод касательных).
x3 – x – 0.2 = 0
[1;1.1]
Ожидаемое значение корня – 1
Тонность вычисления – 0.001
Блок-схема программы.
|
| |||||
Программа на языке QBASIC.
DECLARE SUB dix(a!, b!, e!, root!)
DECLARE SUB kas(a!, b!, e!, x!, root!)
DECLARE FUNCTION F! (x!)
DECLARE FUNCTION F1! (x!)
CLS
PRINT “proverka sushestvovaniya kornya”
PRINT “y=x^3-x-0.2”
REM “vvod otrezka s proverkoj na sushestvovanie resheniya”
Do
INPUT “a=”, a
INPUT “b=”, b
INPUT “e=”, e
|
|
LOOP WHILE F(a) * F(b) < 0
REM “metod dixotomii ili metod deleniya otrezka popolam”
CALL dix(a, b, e, root)
PRINT “korni uravneniya po metodu dixotomii=”; root
PRINT “znachenie funkcii F(x)=”;
PRINT USING “##.######”; F(root)
PRINT “_ _ _ _ _ _ _”
REM “metod kasatelnyx ili metod Nyutona”
INPUT “vvedite nachalnoe znachenie kornya na (a; b) x0=”;
IF F(x) *F1(x) > 0 THEN
PRINT “metod kasatelnyx ili metod Nyutona primenim”
CALL kas(a, b, e, x, root)
PRINT “korni uravneniya po metodu kasatelnyx =”; root
PRINT “znachenie funkcii F(x)=”;
PRINT USING “##.######”; F(root)
ELSE
PRINT “metod kasatelnyx ili metod Nyutona ne primenim”
END IF
END
SUB dix(a, b, e, root) SUB kas(a, b, e, x, root)
x=(a+b)/2 DO
DO x=x-F(x)/F1(x)
IF F(a) * F(b) < 0 THEN LOOP UNTIL ABS (F(x)/F1(x)) < e
b=x root=x
ELSE END SUB
a=x
END IF
x=(a+b)/2
LOOP UNTIL (b-a) < e
root=(a+b)/2
END SUB
FUNCTION F(x)
F = x^3-x-0.2
END FUNCTION
FUNCTION F1(x)
F1 = 3*x^2-1
END FUNCTION