Uniwersytet Warmińsko – Mazurski w Olsztynie
Wydział Nauk Technicznych
Mechatronika
ALGORYTMY I METODY NUMERYCZNE
Ćwiczenie Nr 3
ROZWIĄZYWANIE NIELINIOWYCH RÓWNAŃ ALGEBRAICZNYCH
Wykonał:
7. Równanie ma pierwiastki . Stosując metodę
połowienia, obliczyć dodatni pierwiastek tego równania zaczynając od przedziału . Ile iteracji należy wykonać, aby obliczyć pierwiastek z dokіadnością do czterech miejsc dziesiętnych? Jaki jest maksymalny błąd po tej liczbie iteracji?
a=1;
b=2;
e=0.0001;
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=x^2-2;
ya=a^2-2;
yb=b^2-2;
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=1,4142
n=13
Trzynaście iteracji daje wynik 1,4142. Maksymalny błąd w każdym kroku, określony jako różnica między dwiema ostatnimi iteracjami, jest równy . Dla 13 mamy (1/2)13 0,0001.
8. Równanie ma tylko jeden pierwiastek rzeczywisty. Znaleźć ten pierwiastek metodą połowienia.
a=-2;
b=1;
e=0.0001;
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=x^3-x+1;
ya=a^3-a+1;
yb=b^3-b+1;
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=-1,3248 = 1,3247421
n=15
9. Znaleźć pierwiastek równania w przedziale . Ile trzeba wykonać iteracji, aby metodą połowienia otrzymać przybliżoną wartość pierwiastka z bładem nie przekraczającym ?
a=0;
b=1;
e=0.5e-4;
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=sin(x)+x-1;
ya=sin(a)+a-1;
yb=sin(b)+b-1;
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=0,5110
n=14 14 iteracji.
10. Metodą połowienia znaleźć dodatni pierwiastek równania z dokładnością do 10-2.
a=0;
b=2;
e=0.01
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=x^2-x-1;
ya=a^2-a-1;
yb=b^2-b-1;
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=1,62
n=8
11. Metodą połowienia znaleźć wartość zmiennej , dla której przecinają się wykresy funkcji i . Wymagana dokładność obliczeń wynosi 10-4 .
a=0;
b=1;
e=0.0001
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=3*x-exp(x);
ya=3*a-exp(a);
yb=3*b-exp(b);
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=0,6191 x = 0,6191
n=14
12. Korzystając z metody połowienia znaleźć najmniejszy dodatni pierwiastek równania:
a) , b) , c) .
a)
b=1.2;
e=0.000001
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=tan(x)-x-1;
ya=tan(a)-a-1;
yb=tan(b)-b-1;
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
1,132268 . x= 1,13226773
n=21
b)
a=0;
b=1;
e=0.000001
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=x^3-x^2-2*x+1;
ya=a^3-a^2-2*a+1;
yb=b^3-b^2-2*b+1;
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=0,4450 x = 0,4450
n=20
c)
a=0;
b=1;
e=0.000001
x1=(a+b)/2;
n=0;
while (abs(b-a)>e)
n=n+1;
x=(a+b)/2;
y=2*exp(-x)-sin(x);
ya=2*exp(-a)-sin(a);
yb=2*exp(-b)-sin(b);
if y~=0
if ya*y<0
b=x;
yb=y;
else a=x;
ya=y;
end
else
break
end
end
Wynik:
x=0,921025 x = 0,92102480
n=20