Программа на языке qbasic

Выполнила: студентка 1 курса группа 10-ИУК-30

Сорокина Екатерина

Проверил преподаватель: Максименко

Людмила Сергеевна

Москва 2011 г.

Математическая постановка задачи.

Уточнить корень уравнения, используя следующие методы:

-метод дихотомии (деление отрезка пополам);

-метод Ньютона (метод касательных).

x3 – x – 0.2 = 0

[1;1.1]

Ожидаемое значение корня – 1

Тонность вычисления – 0.001

Блок-схема программы.

 
 


           
 
   
F=x^3-x-0.2
 
F1=3*x^2-1
 


           
 
     
 


       
   
 
 


 
 


           
   
 
   
 
 



       
   
 
 


Программа на языке 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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: