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: 337
Rejestracja: 29 paź 2010, 12:44
Podziękowania: 22 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 ex 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)=x22 też jest wielomianem transcendentalnym (bo przybliżenia 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: 2084
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 493 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: 337
Rejestracja: 29 paź 2010, 12:44
Podziękowania: 22 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: 2084
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 493 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)f(b)<0, to istnieje przynajmniej jeden punkt α[a,b], taki, że [/tex]

f(α)=0.

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

Metoda bisekcji polega na połowieniu przedziału [a,b] na co raz mniejsze przedziały [an,bn][a,b],n=1,2,..

Na początku wyznaczamy środek c=a+b2 każdego przedziału , później obliczamy znak iloczynu f(c)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 α.

Proces połowienia kontynuujemy dopóty, dopóki różnica |anbn|<ε,

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

Innym stop- kryterium, które możemy przyjąć, jest wartość błędu wględnego: |anbn||an|<ε

lub spełniona nierówność:

|f(an|<ε.

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)f(b)<0, to n ty krok

metody bisekcji przybliża poszukiwany pierwiastek równania z błędem nie mniejszym niż (ba)2n+1.

Dowód

Niech [a0,b0] będzie wyjściowym przedziałem zawierającym miejsce zerowe funkcji f,  α.

Definiujemy środek przedziału [a0,b0] to jest punkt c0=b0+c02 i α[a0,b0].

Stąd

|αc0|<(b1a1)=b0a02.

gdzie punkty a1,b1 są końcami nowego przedziału zawierającego α.

Jeśli przez cn oznaczymy wartość c w n tej iteracji, to

|αcn|<|bn+1an+1|=b0a02n+1,  n=0,1,2,...

Na przykład dla wielomianu

f(x)=x36x2+12x26 przyjęliśmy dokładność tol=104 i otrzymaliśmy

|αcn|ba2n+1=212n+1<104

(n+1)log(2)6

n6log(2)17 iteracji.
janusz55
Fachowiec
Fachowiec
Posty: 2084
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 493 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: 2084
Rejestracja: 01 sty 2021, 09:38
Podziękowania: 4 razy
Otrzymane podziękowania: 493 razy

Re: Niewymierne pierwiastki wielomianu?

Post autor: janusz55 »

Porównując Metody Regułę Falsi, Bisekcji i Siecznych - znajdowania pierwiastka transcendentantalnego wielomianu w(x)=x36x2+12x26,
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: 3828
Rejestracja: 18 maja 2009, 09:23
Podziękowania: 53 razy
Otrzymane podziękowania: 2058 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