Компьютерная модель метода половинного деления. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Компьютерная модель метода половинного деления.



CloseGraph; // закрытие графического режима и возврат в текстовый режим

write ('vvedi kolichestvo korney ');

readln (n);

for i:=1 to n do

begin

write ('vvedite levuy granicu otrezka ');

readln (A);

write ('vvedite pravuy granicu otrezka ');

readln (B);

write ('vvedite tochnost ');

readln (E);

Repeat

C:=(A+B)/2;

writeln(c:10:8);

if abs (f(C))<=0.0001 then goto 1;

if f(A)*f(C)<0

then B:=C

else A:=C

until (B-A)/2<=E;

1: writeln ('koren uravneniya ', c:10:8);

end;

 

Результаты компьютерного эксперимента

vvedi kolichestvo korney 3

vvedite levuy granicu otrezka -1

vvedite pravuy granicu otrezka -0.7

vvedite tochnost 0.001

-0.85000000

-0.92500000

-0.96250000

-0.94375000

-0.93437500

-0.92968750

-0.92734375

-0.92851563

koren uravneniya -0.92851563

vvedite levuy granicu otrezka -0.3

vvedite pravuy granicu otrezka 0.3

vvedite tochnost 0.001

0.00000000

koren uravneniya 0.00000000

vvedite levuy granicu otrezka 0.7

vvedite pravuy granicu otrezka 1

vvedite tochnost 0.001

0.85000000

0.92500000

0.96250000

0.94375000

0.93437500

0.92968750

0.92734375

0.92851563

koren uravneniya 0.92851563

Таким образом, решения уравнения

 

Компьютерная модель метода хорд.

begin

clrscr;

write ('vvedi kolichestvo korney ');

readln (n);

for i:=1 to n do

begin

write ('vvedite levuy granicu otrezka ');

readln (A);

write ('vvedite pravuy granicu otrezka ');

readln (B);

write ('vvedite tochnost ');

readln (E);

repeat

c:=a-(f(a)/(f(b)-f(a)))*(b-a);

writeln (c:10:8);

if f(c)*f(a)>0 then a:=c else b:=c;

until abs(f(c))<e;

writeln ('koren uravneniya ',c:10:8);

end;

readln

end.

 

Результаты компьютерного эксперимента

vvedi kolichestvo korney 3

vvedite levuy granicu otrezka -1

vvedite pravuy granicu otrezka -.7

vvedite tochnost 0.001

-0.89655455

-0.92513533

-0.92825863

koren uravneniya -0.92825863

vvedite levuy granicu otrezka -0.3

vvedite pravuy granicu otrezka 0.3

vvedite tochnost 0.001

0.00000000

koren uravneniya 0.00000000

vvedite levuy granicu otrezka 0.7

vvedite pravuy granicu otrezka 1

vvedite tochnost 0.001

0.89655455

0.92513533

0.92825863

koren uravneniya 0.92825863

Таким образом, решения уравнения

 

Компьютерная модель метода касательных

function f1(x:real):real;// первая производная

begin

f1:=3*x*x-cos(x);

end;

function f2(x:real):real;//вторая производная

begin

f2:=6*x+sin(x);

end;

begin

clrscr;

write ('vvedi kolichestvo korney ');

readln (n);

for i:=1 to n do

begin

write ('vvedite levuy granicu otrezka ');

readln (A);

write ('vvedite pravuy granicu otrezka ');

readln (B);

write ('vvedite tochnost ');

readln (E);

if f(a)-f2(a)>0 then c:=a else c:=b;

repeat

writeln(c:10:8);

c:=c-f(c)/f1(c);

until abs(f(c))<e;

writeln ('koren uravneniya ', c:10:8);

end;

readln

end.

 

Результаты компьютерного эксперимента

vvedi kolichestvo korney 3

vvedite levuy granicu otrezka -1

vvedite pravuy granicu otrezka -0.7

vvedite tochnost 0.001

-1.00000000

-0.93554939

koren uravneniya -0.92870181

vvedite levuy granicu otrezka -0.3

vvedite pravuy granicu otrezka 0.3

vvedite tochnost 0.001

-0.30000000

0.09180784

-0.00186023

koren uravneniya 0.00000002

vvedite levuy granicu otrezka 0.7

vvedite pravuy granicu otrezka 1

vvedite tochnost 0.001

1.00000000

0.93554939

koren uravneniya 0.92870181

Таким образом, решения уравнения

 

Компьютерная модель комбинированного метода

var a,b:real;

e,e1:real;

x0,x1,x2:real;//дополнительные преременные для данного метода

i,n:integer;

function f(var x:real):real;

begin

f:= X*X*X-sin(x);

end;

function f1(var x:real):real; //первая производная

begin

f1:= 3*X*X-cos(x);

end;

function f2(var x:real):real; //вторая производная

begin

f2:= 6*X+sin(x);

end;

begin

clrscr;

write('vvedi kolicestvo korney '); readln(n);

for i:=1 to n do

begin

write('vvedi levu granicu '); readln(a);

write('vvedi pravu granicu '); readln(b);

write('vvedi tochnost '); readln(e);

if f(a)*f2(a)>0

then

begin

x0:=a;

x1:=x0-f(x0)/f1(x0);

x2:=a-((b-a)*f(a)/(f(b)-f(a)));

e1:=(x1+x2)/2

end

else

begin

x0:=b;

x1:=x0-f(x0)/f1(x0);

x2:=a-((b-a)*f(a)/(f(b)-f(a)));

e1:=(x1+x2)/2

end;

while abs(e1-x1)>e do

begin

a:=x1;

b:=x2;

x1:= a-f(a)/f1(a);

x2:= a-((b-a)*f(a)/(f(b)-f(a)));

e1:=(x1+x2)/2;

writeln(x1:10:8);

end;

writeln ('koren uravneniya ',x1:10:8);

end;

readln

end.

 

Результаты компьютерного эксперимента

vvedi kolicestvo korney 3

vvedi levu granicu -1

vvedi pravu granicu -.7

vvedi tochnost 0.001

-0.92870181

koren uravneniya -0.92870181

vvedi levu granicu -0.3

vvedi pravu granicu 0.3

vvedi tochnost 0.001

0.00186023

koren uravneniya 0.00186023

vvedi levu granicu 0.7

vvedi pravu granicu 1

vvedi tochnost 0.001

0.92870181

koren uravneniya 0.92870181

Таким образом, решения уравнения

Все рассмотренные методы, дают одинаковый результат с выбранной точностью.

 



Поделиться:


Последнее изменение этой страницы: 2016-04-23; просмотров: 228; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.15.205 (0.013 с.)