# KL 2viii, 1718,2vii2008 mathpad 2008, UMK, Toruń Przkład rozwiązwania zadań z użciem MuPADa Krzsztof Leśniak Zadanie 1. Rozwiązać nierówność x x + 5 > 0. (Źródło: Powszechn Internetow Konkurs dla Uczniów Szkół Średnich Matematka, WMiNI Politechnika Warszawska 2007) Od równania do nierówności i z powrotem Rozważm wielomian ego stopnia (Tu i dalej wielomian traktujem jako funkcje, a nie wrażenia algebraiczne) W := x > x^*x + 5 x x x + 5 Szukam miejsc zerowch W(x)=0 x x + 5 = 0 {1} È RootOf(X1 4 + 2 X1 + X1 2 + 4 X1 + 5, X1) solve(w(x)=0, x) solve(w(x)=0, x, Multiple) {[1, 2]} È RootOf(X2 4 + 2 X2 + X2 2 + 4 X2 + 5, X2) Kłopotliw jest wielomian 4ego stopnia V wstępując w rozkładzie W factor(w(x)) (x 4 + 2 x + x 2 + 4 x + 5) (x 1)2 Wkonujem teraz dzielenie wielomianów, ab zająć się mniejszm problemem V := x > divide(w(x),(x1)^2, Exact) x divide(w(x),(x 1)2, Exact) V(x) x 4 + 2 x + x 2 + 4 x + 5 Zbadajm zatem pierwiastki V czli "RootOf( V(X), X )" (Opcja MaxDegree=4 nakazuje sstemowi wznaczać bezpośrednio pierwiastki wielomianów do 4ego stopnia włącznie) solve(v(x)=0, x, MaxDegree=4) 8>< +( >: 5 5 + pååååååå pååååååå på sååååååååååååååååååååååååååååååååååååååååååååå ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ i)2 ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ pååååååå +( pååååååå ( 5 + i 18 5 + i 5 5 + i)2 5 + i 9 1 påå 2 5 + i Wglada na to, że kłopotliw wielomian V w ogóle nie posiada pierwiastków rzeczwistch
Wglada na to, że kłopotliw wielomian V w ogóle nie posiada pierwiastków rzeczwistch solve(v(x)=0, x, MaxDegree=4, Real) Æ Widać to też z wkresu V plotfunc2d(v(x), x = 2..2) 50 40 0 20 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 plotfunc2d(v(x), x = 0..0) 1e+8 9e+7 8e+7 7e+7 e+7 5e+7 4e+7 e+7 2e+7 1e+7 x 0 80 0 40 20 0 20 40 0 80 0 Mogliśm więc od razu rozwiązać nasze równanie W(x)=0 solve(w(x)=0, x, MaxDegree=, Real) {1} załączając dodatkowo wkres wielomianu W(x) plotfunc2d(w(x), x = 2..2) x 2 80 70
80 70 0 50 40 0 20 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 Wobec tego spróbujm rozwiązać nierówność W(x)>0 solve(w(x)>0, x, MaxDegree=, Real) ((1, ) È(, 1)) Ç solve( 5 < x 4 + 2 x + x 2 + 4 x, x, MaxDegree =, Real = TRUE) Jak widać problem wielomianu V powrócił. Oczwiście,,wkazan" wcześniej brak rzeczwistch pierwiastków V w połączeniu z informacją, że V(x)>0 dla jakiegoś x mówi, że rozwiązaniem nierówności W(x)>0 jest istotnie suma przedziałów (inft,1) i (1,inft). Widać to też z wkresu W(x). Tlko co to znacz,,wkazan"? Poprawność wkonanego przez komputer dzielenia wielomianów łatwo sprawdzić (mnożąc wielomian). Cz konkretna liczba jest pierwiastkiem wielomianu też łatwo sprawdzić (obliczając wartość wielomianu). Ale jak zwerfikować dodatniość (a w zasadzie brak pierwiastków) wielomianu V? Przecież,,rsunek to nie rachunek" (przwołując rgorzm K.Weierstrassa). Wnik solvera z opcją poszukiwania rozwiązań rzeczwistch nie może bć w pełni zadowalając, gdż w pewnch stuacjach solver udziela tlko częściowch odpowiedzi, a algortm wg którego działa może bć zbt trudn do prześledzenia dla tpowego użtkownika sstemu. W dalszej części postaram się zaatakować zaistniał problem standardowmi środkami oferowanmi przez sstem tak, ab nasza argumentacja bła nie tlko wiargodna, ale i kompletna. x Rozkład na wielomian nierozkładalne Z zasadniczego twierdzenia algebr wiem, że wielomian V musi się rozkładać na wielomian kwadratowe. (Dotchczas rozkładaliśm wielomian nad,,ładnm" pierścieniem współcznników całkowitch opcja ustawiona domślnie. Pora dopuścić współcznniki rzeczwiste R_) U := factor(v(x), R_) (x 2 0.57509591 x + 2.0881572) (2.5750959 x + x 2 + 2.945557) U[1]; U[2] x 2 0.57509591 x + 2.0881572
x 2 0.57509591 x + 2.0881572 2.5750959 x + x 2 + 2.945557 Obliczam wróżniki uzskanch wielomianów kwadratowch (Funkcję discrim obliczającą wróżnik wdobwam z biblioteki pollib) pollib::discrim(u[1], x); pollib::discrim(u[2], x); 8.021278447 2.9494792 W ten sposób widzim, że unormowane wielomian U[1], U[2] są nierozkładalne, a więc są cał czas dodatnie, skąd ich iloczn V = U[1] * U[2] również jest cał czas dodatni, o co zresztą walczliśm. Hmm... Tlko cz te obliczenia bł w pełni smboliczne? Sądząc po wglądzie współcznników zaczęliśm w locie użwać wartości numercznch. I nic w tm dziwnego, jeśli wziąć pod uwagę,,koszmarn" wgląd wrażeń smbolicznch dla pierwiastków wielomianu V. 8>< +( >: 5 5 + pååååååå pååååååå på sååååååååååååååååååååååååååååååååååååååååååååå ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ i)2 ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ pååååååå +( pååååååå 5 + i 18 5 + i 5 5 + i)2 5 + i 9 påå ( 2 5 + i Spróbujm wdobć z rozwiązań smbolicznch więcej informacji. PierwV := solve(v(x)=0, x, MaxDegree=4) float(pierwv) { 1.28781548 + 0.85789758 i, 1.28781548 0.85789758 i, 0.287815479 + 1.4908 i, 0.287815479 Widać, że pierwiastki grupują się w par pierwiastków sprzężonch V1 := x > (xpierwv[1])*(xpierwv[2]); 1) 2) x (x PierwV (x PierwV +( pååååååå ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ ÅÅÅÅÅ +( 5 5 + i)2 pååååååå 5 + i x + ( pååååååå ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ 5 5 + pååååååå i)2 ÅÅÅÅÅÅÅÅÅÅÅÅ 5 + pååååååå på i + + x 2 + 5 + 2 + 9 5 + 2 5 + i 4 5 + i i)2 9 5 + i 0 B@ +( pååååååå 1 0 ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ pååååååå x 2 5 5 + i)2 C A 5 + i B + + 1 x + @ +( 5 5 + pååååååå pååååååå på sååååååååå ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ i)2 ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ pååå 5 + i 18 5 5 + i 2 5 + i pååååååå +( pååååååå ( 18 5 + i 5 5 + i)2 ÅÅ +( 5 + i + 9 5 + i)2 pååååååå ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ 5 5 + i)2 5 + i + 4 pååååååå ( pååå + 9 5 + i)2 9 expand(v1(x)) collect(v1(x),x) delta1 := pollib::discrim(v1(x), x) delta1 := simplif(delta1, sqrt) pååååååå på på påååååååååå 5 + i + 2 270 + 540 i 5 + i +( pååååååå 5 5 + i)2 5 + i ³ 2 4 5 ÅÅ ÅÅ i 1 +på på ( 2 5
pååååååå på på påååååååååå 5 + i + 2 270 + 540 i combine(delta1, sqrt) pååååååå 5 + i Ciężko. Chba nie tęd droga + på 2 på påååååååååå 270 + 540 i Spróbujm znaleźć współcznniki rozkładu na pieszo. V1 := x > x^2+a*x+b; V2 := x > x^2+c*x+d x x 2 + a x + b x x 2 + c x + d V1(x)*V2(x) (x 2 + a x + b) (x 2 + c x + d) expand(v1(x)*v2(x)) +( pååååååå 5 5 + i)2 5 + i +( pååååååå 5 5 + i)2 a x + b x 2 + c x + d x 2 + x 4 + b d + a d x + b c x + a c x 2 collect(v1(x)*v2(x),x) c) c) c) x 4 +(a + x +(b + d + a x 2 +(a d + b x + b d x collect(v1(x) x) V2(x), Ve := x > collect(v1(x)*v2(x),x) Ve(x) x 4 +(a + c) x +(b + d + a c) x 2 +(a d + b c) x + b d 5 + i ÅÅ ÅÅ i 1 +på på ( 2 5 ³ 2 ³ 2 Iloczn wielomianów V1*V2 z hipotetcznego rozkładu musi bć zgodn z wielomianem V Ve(x)V(x)=0 b d x 2 2 x 4 x + x (a + c) + x (a d + b c) + x 2 (b + d + a c) 5 = 0 collect(ve(x)v(x),x)=0 2) ) 4) (a + c x +(b + d + a c x 2 +(a d + b c x + b d 5 = 0 0B@ 1CA 8 :0 > < ÅÅ ÅÅ 5ÅÅ 2ÅÅ ÅÅÅ a ÅÅÅ ÅÅ z 5 ÅÅÅ z + z 2 ÅÅÅ ÅÅ + 7 b c Î > ÅÅ z ÅÅ 5 5ÅÅ z + 2ÅÅ z 2 ÅÅÅ z + d z 4 + z z 2 5 Rozw := solve({a+c2=0,b+d+a*c=0,a*d+b*c4=0,b*d5=0},{a,b,c,d}) B@ z4 z 4 25 z 5 25 25 z 1 z 25 5 + 1 z ÅÅ ÅÅ i 1 +på på ( 2 5 1 CA z Î RootOf(z1 z1 5 + z1 4 z1 + 15 z1 2 75 z1 + 12,,Zamienił strjek siekierkę na kijek" chcieliśm rozłożć wielomian 4ego stopnia, a dostaliśm równanie ego stopnia. Układ zerując współcznniki co prawda,,rozwiązuje się sam", ale wnik jest zbt skomplikowan, ab go użć. Rachunek nieróżniczkow Jak wiadomo do badania przebiegu funkcji można użć rachunku różniczkowego. Spróbujm to ucznić z wielomianem V(x). 5 Sprawdzam znak pierwszej pochodnej V Vp := x >diff(v(x), x); Vp(x); x x ÅÅÅ V(x)
ÅÅÅ V(x) x x 4 x + x 2 + x + 4 ½ 14ÅÅ ÅÅÅÅÅÅ påå 15 ÅÅ ÅÅÅÅÅÅ påå ¾ i 1, 4, 1 15 i 4 + 4 { 1} ( ) 1, ( 1), solve(vp(x)=0,x); solve(vp(x)=0,x,real); solve(vp(x)>0,x,real); solve(vp(x)<0,x,real); Zatem V(x) osiąga minimum lokalne (i globalne!) w punkcie x=1, które wnosi V(1); co też i zgadza się z wkresem V(x). Wniosek: V(x)>0. Niestet rachunek różniczkow należ do "środków zakazanch" w początkowej nauce algebr. Komentarz [B.K.D.]: Jeśli możem użwać pochodnch, to należało od razu zróżniczkować W i po zadaniu. Nie strzelajm do meszek z armat ;) Użjm ostatecznego argumentu na dodatniość wielomianu: rachunek różnicow. Nie będziem rozważać ilorazów różnicowch wstarcz nam różnica wartości wielomianu. Z wkresu V(x) wiem, że coś się dzieje wokół x=1, a poza tm ramiona V są skierowane w górę. Badam więc przrost wartości prz zmianie argumentu z x = 1 na x= 1+h. DV := h > V(1+h)V(1); DV(h) h V(h 1) V( 1) h 4 2 h + h 2 plotfunc2d(dv(h), h = 1..1) 5 4 2 1 1.0 0.8 0. 0.4 0.2 0.0 0.2 0.4 0. 0.8 1.0 h Jak widać z wkresu różnice wartości DV(h) są dodatnie, czli V(1+h) > V(1)= dla h > 0.
Jak widać z wkresu różnice wartości DV(h) są dodatnie, czli V(1+h) > V(1)= dla h > 0. Potwierdźm wnik rachunkiem, rozwiązując nierówność gotową komendą solve(dv(h)>0,h,real) (0, ) È(, 0) i dla porównania poprzez rozkład na cznniki DVr := factor(dv(h)); DVr[1]; DVr[2] h 2 (h 2 2 h + ) h 2 h 2 2 h + DVf := pol(dvr[2],[h]): DVf(h); h (h 2) + pollib::discrim(dvf(h), h) 8 Drugi z cznników jest nierozkładaln (i cał czas dodatni). Zatem rzeczwiście V(x) osiąga wartość najmniejszą w x=1. delete W,V,U,V1,V2,Ve,Vp,DV,DVr,DVf,Rozw: Komentarz [M.M.]: Nie podoba mi się logika pocznionego wwodu. Tak się po prostu nie programuje. Appendix, czli Krótkie rozwiązanie teraz proszę! Do tego wiargodne i kompletne Zróżniczkujm i... Ale zaraz:,,nam różniczkować nie kazano". No to bez różniczkowania. Oznaczam wielomian W := x > x^*x + 5 x x x + 5 Szkicujem wkres plotfunc2d(w(x),x=2.5..2.5); 7 250
250 200 150 0 50 2.5 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5 Znajdujem pierwiastki rzeczwiste wielomianu (wraz z ich krotnościami) solve(w(x), x, Real, MaxDegree=, Multiple) {[1, 2]} Znam dokładną wartość (jednego choć podwójnego) pierwiastka W. Z wkresu spodziewam się, że każda wartość W(1+h) > W(1)=0 ( h >0 ). Sprawdzam to //Przrost na wartościach DW := h > W(1+h)W(1): factor(dw(h)) h 2 (h 4 + h + 15 h 2 + 20 h + 15) //Nierówność // DW(h) = W(1+h) W(1) >0 //jest za trudna, //więc rozwiązujem równanie //w dziedzinie rzeczwistej solve(dw(h)=0, h, Real, MaxDegree=4) {0} //Ponieważ wielomian są ciągłe, //na moc własności Darboux sprawdzając np., że is(dw(2)>0); is(dw(1)>0); //możem potwierdzić dodatniość //wszstkich przrostów DW(h), h >0. TRUE TRUE Tm samm W(x) = W(1+h) > 0 dla h<>0, czli x=1+h <> 1. W konsekwencji W(x) > 0 <=> x in (inft,1) u (1,inft). x Niestet przeprowadzone rozumowanie nadal jest długie, a ponadto korzsta z wiedz zewnętrznej wobec sstemu wiedz matematcznej użtkownika (ciągłość wielomianu i własność Darboux). Cz można jeszcze krócej i łatwiej? Popatrzm niżej W := x > x^*x + 5 8 x x x + 5
x x x + 5 solve(w(x), 2]} x, Real, MaxDegree=, Multiple) {[1, degree(w(x),x) is(w(8)>0); TRUE Dla wielomianu W(x) stopnia parzstego deg W= z podwójnm pierwiastkiem rzeczwistm x=1 rozwiązanie nierówności W(x)>0 stanowi zbiór (inft,1) u (1,inft). Niestet przeprowadzone rozumowanie nadal korzsta z wiedz zewnętrznej wobec sstemu wiedz matematcznej użtkownika (przebieg zmienności wielomianu w zależności od pierwiastków, opart już tlko o znak ilocznu liczb, a nie ciągłość). Musim się zadowolić nieco karkołomnm acz kompletnm i wiargodnm rozumowaniem wkorzstującm solver do badania przrostów DW. Możem ewentualnie poprawić solver dla nierówności tak b na podstawie rozmieszczenia pierwiastków i wartości funkcji w przedziałach wdzielonch pierwiastkami podawał gdzie funkcja jest dodatnia, a gdzie ujemna. Taki solver dla nierówności jest (dzięki ciągłości) równie wiargodn jak solver równań w dziedzinie rzeczwistej. delete W, DW: Problem: Zaproponować zgrabniejsze rozwiązanie na poziomie szkolnm (tzn. bez użwania liczb zespolonch i pochodnch). Rozwiązanie ma bć kompletne (bez luk), wiargodne (z użciem w pełni sprawnch komend w całm zakresie argumentów, np. solver dla równań wielomianowch jest wiargodn, ale z nierównościami sobie już nie radzi) i nie powinno podpierać się dodatkową wiedzą matematczną użtkownika. Kewords: computer aided proof, reliable computing, smbolic computation, automatic reasoning. 9