Niewymierne pierwiastki wielomianu?

Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
Tulio
Stały bywalec
Stały bywalec
Posty: 336
Rejestracja: 29 paź 2010, 12:44
Podziękowania: 21 razy
Otrzymane podziękowania: 92 razy
Płeć:

Re: Niewymierne pierwiastki wielomianu?

Post autor: Tulio »

Definicję funkcji transcendentalnej źródła jak Britannica podają inaczej:
"In mathematics, a function not expressible as a finite combination of the algebraic operations of addition, subtraction, multiplication, division, raising to a power, and extracting a root. Examples include the functions log x, sin x, cos x, e^x and any functions containing them."
Warto zauważyć, że \(e^x\) nie ma w ogóle miejsc zerowych i raczej nie od ich występowania powinna zależeć definicja.

Wedle tej definicji co teraz podałeś, to \(W(x)=x^2-2\) też jest wielomianem transcendentalnym (bo przybliżenia \( \sqrt{2} \) szuka się m.in. metodami numerycznymi).

Książki nie widzi google, masz linka do niej?

PS. Po polsku raczej należałoby w ogóle pisać o funkcji/wielomianie przestępnym, tak jak "transcendental number" to liczba przestępna właśnie.
janusz55
Fachowiec
Fachowiec
Posty: 2038
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 489 razy

Re: Niewymierne pierwiastki wielomianu?

Post autor: janusz55 »

Książka jest dostępna na przykład na Amazon.

Numerycy przyjełi taką a nie inną definicję funkcji transcendentalnej (wielomianu transcendentalnego) i co z tego?

Algebraicy przyjęli wielomiany przestępne i co z tego?
Tulio
Stały bywalec
Stały bywalec
Posty: 336
Rejestracja: 29 paź 2010, 12:44
Podziękowania: 21 razy
Otrzymane podziękowania: 92 razy
Płeć:

Re: Niewymierne pierwiastki wielomianu?

Post autor: Tulio »

janusz55 pisze: 14 paź 2024, 08:30 Książka jest dostępna na przykład na Amazon.
Link?
janusz55 pisze: 14 paź 2024, 08:30 Numerycy przyjełi taką a nie inną definicję funkcji transcendentalnej (wielomianu transcendentalnego) i co z tego?
W sensie jaką, bo podałeś dwie różne, a definicja na angielskiej wikipedii jest całkiem inna od Twojej.
janusz55 pisze: 14 paź 2024, 08:30 Algebraicy przyjęli wielomiany przestępne i co z tego?
?

Może wstawisz zdjęcie fragmentu tejże książki z tak trudno dostępną definicją?
janusz55
Fachowiec
Fachowiec
Posty: 2038
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 489 razy

Re: Niewymierne pierwiastki wielomianu?

Post autor: janusz55 »

Metoda Bisekcji - znajdowania pierwiastków równań bazuje na twierdzeniu Darboux "o przyjmowaniu wartości pośrednich".

Jeśli funkcja \( f(x) \) jest funkcją ciągłą w przedziale \( [a,b] \) taką, że w końcach tego przedziału przyjmuje wartości

różnych znaków, \( f(a)\cdot f(b) < 0,\) to istnieje przynajmniej jeden punkt \( \alpha \in [a,b]\), taki, że [/tex]

\( f(\alpha) = 0. \)

Zakładamy, że funkcja posiada dokładnie jedno miejsce zerowe \( \alpha \) w rozpatrywanym przedziale \( [a, b]. \)

Metoda bisekcji polega na połowieniu przedziału \( [ a, b ]\) na co raz mniejsze przedziały \( [a_{n}, b_{n}] \subset [a,b], n=1,2,.. \)

Na początku wyznaczamy środek \( c = \frac{a+b}{2} \) każdego przedziału , później obliczamy znak iloczynu \( f(c)\cdot f(b). \)

Jeśli iloczyn jest ujemny, oznacza to, że poszukiwany pierwiastek znajduje się w przedziale \( [c, d],\) jeśli zaś dodatni - w przedziale

\( [a,c]. \)

Następnie rozpatrujemy nowy przedział zawierający \( \alpha. \)

Proces połowienia kontynuujemy dopóty, dopóki różnica \( |a_{n} - b_{n}| < \varepsilon, \)

gdzie \( \varepsilon \) jest wartością przyjętej dokładności (tolerancji) wyniku.

Innym stop- kryterium, które możemy przyjąć, jest wartość błędu wględnego: \( \frac{|a_{n}-b_{n}|}{|a_{n}|}< \varepsilon \)

lub spełniona nierówność:

\( |f(a_{n}| < \varepsilon.\)

Program Metody Bisekcji w OCTAVE

Kod: Zaznacz cały


function bisect(f,a,b,tol,n)
  a0=a;
  b0=b;
  iter=0;
  u=feval(f,a);
  v=feval(f,b);
  c=(a+b)*0.5;
  err=abs(b-a)*0.5;
  disp('__________________________________________________________________ ')
  disp(' iter      a         b        c         f(c)        |b-a|/2                                                ')
  disp('___________________________________________________________________')
  fprintf('\n')
  if (u*v<=0)
    while (err>tol)&(iter<=n)
      w=feval(f,c);
      fprintf('%2.0f %10.4f %10.4f %12.6f %10.6f %10.6f\n',iter,a,b,c,w,err)
     if (w*u<0)
        b=c;
        v=w;
      end;
      if (w*u>0)
        a=c;
        u=w;
      end;
      iter=iter+1;
      c=(a+b)*0.5;
      err=abs(b-a)*0.5;
    end;
    if (iter>n)
      disp('Metoda nie jest zbieżna')
    end;
  else
    disp('Metoda nie może by stosowana f(a)f(b)>0')
    end;

Przykładowa funkcja:

Kod: Zaznacz cały

   
    function f=f1(x)
     f=x.^3- 6x.^2+12*x -26;    
 

Przykładowe wywołanie programu:

Kod: Zaznacz cały

  >> bisect('f1',3,5,10^(-4),40)

Wyniki:

Kod: Zaznacz cały

iter       a        b         c           f(c)     |b-a|/2
___________________________________________________________

  0       3.0000      5.0000     4.307691  -5.710514   2.000000
 1       4.3076       5.0000     4.576441  -0.897457   0.692308
 2       4.5764       5.0000     4.614848  -0.121168   0.423559
 3       4.6148       5.0000     4.619964  -0.016012   0.385152
 4       4.6200       5.0000     4.620639  -0.002110   0.380036
 5       4.6206       5.0000     4.620728  -0.000278   0.379361
 6       4.6206       5.0000     4.620740  -0.000037   0.379271
 7       4.6206       5.0000     4.620739  -0.000036   0.379270
 8       4.6207        5.0000     4.620738 -0.000035    0.379269
Dokładność metody bisekcji .

Jeśli funkcja \( f \) jest ciągła w przedziale \( [a,b] \) i taka, że \( f(a)\cdot f(b) <0, \) to \( n-\) ty krok

metody bisekcji przybliża poszukiwany pierwiastek równania z błędem nie mniejszym niż \( \frac{(b-a)}{2^{n+1}}.\)

Dowód

Niech \( [a_{0}, b_{0}] \) będzie wyjściowym przedziałem zawierającym miejsce zerowe funkcji \( f, \ \ \alpha. \)

Definiujemy środek przedziału \( [a_{0}, b_{0}] \) to jest punkt \( c_{0} = \frac{b_{0}+c_{0}}{2} \) i \( \alpha \in [a_{0},b_{0}].\)

Stąd

\( |\alpha-c_{0}| < (b_{1}-a_{1}) = \frac{b_{0}-a_{0}}{2}. \)

gdzie punkty \( a_{1}, b_{1} \) są końcami nowego przedziału zawierającego \( \alpha. \)

Jeśli przez \( c_{n} \) oznaczymy wartość \( c \) w \( n- \) tej iteracji, to

\( |\alpha - c_{n}| < |b_{n+1}- a_{n+1}| =\frac{b_{0}-a_{0}}{2^{n+1}}, \ \ n=0,1,2,...\)

Na przykład dla wielomianu

\( f(x) = x^3 -6x^2+12x -26 \) przyjęliśmy dokładność \( tol = 10^{-4} \) i otrzymaliśmy

\( |\alpha - c_{n}| \leq \frac{b-a}{2^{n+1}} = \frac{2-1}{2^{n+1}} < 10^{-4} \)

\( -(n+1) \log(2)\leq -6 \)

\( n \geq \frac{6}{\log(2)} -1 \approx 7 \) iteracji.
janusz55
Fachowiec
Fachowiec
Posty: 2038
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 489 razy

Re: Niewymierne pierwiastki wielomianu?

Post autor: janusz55 »

METODA SIECZNYCH W PROGRAMIE MATLAB

Kod: Zaznacz cały

function secant(f,x0,x1,tol,n)
% Metoda siecznych rozwiązywania równania nielinowego f(x)=0.
iter=0;
u=feval(f,x0);
v=feval(f,x1);
err=abs(x1-x0);
disp('_______________________________________________')
disp(' iter xn f(xn) f(xn+1)-f(xn) |xn+1-xn| ')
disp('_______________________________________________')
fprintf('%2.0f %12.6f %12.6f\n',iter,x0,u)
fprintf('%2.0f %12.6f %12.6f %12.6f %12.6f\n',iter,x1,v,v-u,err)
while (err>tol)&(iter<=n)&((v-u)~=0)
x=x1-v*(x1-x0)/(v-u);
x0=x1;
u=v;
x1=x;
v=feval(f,x1);
err=abs(x1-x0);
iter=iter+1;
fprintf('%2.0f %12.6f %12.6f %12.6f %12.6f\n',iter,x1,v,v-u,err)
end
if ((v-u)==0)
disp('Dzielenie przez zero')
end
if (iter>n)
disp('Metoda nie jest zbieżna')
end

function f = f1(x)
f = x.^3 - 6*x.^2+12*x -26;
Uruchomienie programu

Kod: Zaznacz cały

>> secant('f1',3,5,10^(-4),40)
Wyniki

Kod: Zaznacz cały

 iter     xn        f(xn)      f(xn+1)-f(xn)   |xn+1-xn| 
________________________________________________________
 0     3.000000   -17.000000
 0     5.000000     9.000000    26.000000     2.000000
 1     4.307692    -5.710514   -14.710514     0.692308
 2     4.576441    -0.897458     4.813056     0.268749
 3     4.626553     0.120011     1.017469     0.050112
 4     4.620642    -0.002044    -0.122055     0.005911
 5     4.620741    -0.000005     0.002039     0.000099
 
janusz55
Fachowiec
Fachowiec
Posty: 2038
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 489 razy

Re: Niewymierne pierwiastki wielomianu?

Post autor: janusz55 »

Porównując Metody Regułę Falsi, Bisekcji i Siecznych - znajdowania pierwiastka transcendentantalnego wielomianu \( w(x) = x^3 -6x^2 +12x -26,
\)

możemy stwierdzić, że najszybciej zbieżną z ponad liniowym wykładnikiem zbieżności rzędu \( p = 1,7 \) jest metoda Reguła Falsi (Fałszywej Pozycji).
Na drugim miejscu - Metoda Siecznych z ponad liniowym wykładnikiem zbieżności rzędu \( p = 1,62 \). Na trzecim Metoda Bisekcji (Połowienia) z liniowym wykładnikiem zbieżności rzędu \( p =1.\)

Najszybciej zbieżną metodą iteracyjną z kwadratowym wykładnikiem zbieżności jest Metoda Newtona-Raphsona, którą przy okazji przedstawię Państwu.
Awatar użytkownika
Jerry
Expert
Expert
Posty: 3807
Rejestracja: 18 maja 2009, 09:23
Podziękowania: 53 razy
Otrzymane podziękowania: 2054 razy

Re: Niewymierne pierwiastki wielomianu?

Post autor: Jerry »

Fascynujące bicie piany...

Info: User założył topik tylko po to, żeby przemycić w swoim podpisie szkodliwy link! Nota bene - już skasowałem!

Pozdrawiam
ODPOWIEDZ