- •Блок-схема метода половинного деления
- •Практическая часть
- •Компьютерная модель построения графика функции на языке программирования Free Pascal
- •Компьютерная модель метода половинного деления.
- •Компьютерная модель метода хорд.
- •Компьютерная модель метода касательных
- •Компьютерная модель комбинированного метода
Компьютерная модель метода хорд.
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
Таким образом, решения уравнения
Все рассмотренные методы, дают одинаковый результат с выбранной точностью.