Zestaw 5. Rozdział 1: Równania algebraiczne, układy równań Solve - polecenie służące do rozwiązywania równań i układów równań, w tym z parametrem. Wynik zwracany przez polecenie Solve jest listą podstawień: {x->..., y->...} itp Solve[a x==3] Solve[a x==3,x] Solve[a x==3,a] Reduce - ogólne polecenie, które może służyć do rozwiązywania nierówności, układów nierówności i równań, w tym z parametrem ORAZ redukcji formuł logicznych. Wynik zwracany przez polecenie Reduce jest formułą logiczną. Reduce[a x==3] Reduce[a x==3,x] Reduce[a x==3,a] Przykład (rozwiązywanie równań algebraicznych): (* rozwiząnie ogólne*) Solve[3 x^3-2 x+1==0] (* ograniczone tylko do liczb rzeczywistych *) Solve[3 x^3-2 x+1==0,reals] (* równanie wielu zmiennych rozwikływanie równań *) Solve[x^2+2 y^2+x-2 y==0,x] Solve[x^2+2 y^2+x-2 y==0,y] Solve[x^2+2 y^2+x-2 y==0,{x,y}] (* równanie z parametrem *) Solve[ p x^2+ x+1==0,x] (* Reduce podaje również wartości parametrów *) Reduce[ p x^2+ x+1==0,x] Przykład (rozwiązywanie układów równań): (* układ równań liniowych *) Solve[x+2 y==3 && 3 x+y==10] (* z jednym rozwiązaniem *) Solve[x+2 y==3 && x+2 y==10] (* sprzeczny *) Solve[3 x+2 y==3 && 6 x+4 y==6] (* nieskończona liczba rozwiązań *) (* możliwość wyboru zmiennych niezależnych *) Solve[2 x+3 y+z+w==3 && x-y+z+w==3] Solve[2 x+3 y+z+w==3 && x-y+z+w==3,{x,y}]
Solve[2x+3y+z+w==3 && x-y+z+w==3,{x,w}] Solve[2x+3y+z+w==3 && x-y+z+w==3,{x,z}] Solve[2 x+3 y+z+w==3 && x-y+ z+w==3,{y,w}] Solve[2x+3y+z+w==3 && x-y+z+w==3,{y,z}] (* dlaczego brak rozwiązań?!??! *) Solve[2 x+3 y+z+w==3 && x-y+z+w==3,{z,w}] Przykład (rozwiązywanie równań trygonometrycznych): ConditionalExpression[sol,cond] informuje, że rozwiązanie sol jest prawidłowe jeżeli warunek cond jest prawdziwy. Ponieważ wiemy, że stała jest całkowita możemy uprościć wynik: Niestety nie każde równanie da się rozwiązać za pomocą Solve, czy Reduce Przykład Plot[{Sin[x],1/2x},{x,-π,π}] Solve[Sin[x]==1/2x,x] Reduce[Sin[x]==1/2x,x]
Rozdział 2: Jeszcze trochę analizy - ekstrema Ekstrema globalne (Minimize, Maximize, MinValue, MaxValue, ArgMin, ArgMax) Do każdej z powyższych funkcji możemy dodać ograniczenia na dziedzinę. UWAGA: Jeśli funkcja posiada więcej niż jedno minimum/maksimum globalne o tej samej wartości, to funkcja Minimize/Maximize znajdzie tylko jedno z nich. Przykład (Ekstrema): Minimize[{x-2y,x^2+y^2<=1},{x,y}] Maximize[{x+y,x+2y<3 && 1>x>=0 && 1>y>=0},{x,y}] f[x_] := x^4 - x^2 Minimize[f[x], x] (* jakieś minimum globalne *) Minimize[{f[x], x < 0}, x] (* jakieś minimum na osi ujemnej *) Minimize[{f[x], x > 0}, x] (* jakieś minimum na osi dodatniej *) Minimize[f[x],a<=x<=b,x] (*jakieś minimum na odcinku [a,b]*) Jeśli chcemy upewnić się, że znajdziemy wszystkie ekstrema lokalne, to możemy skorzystać z dobrze znanego z analizy sposobu na wyznaczanie ekstremów lokalnych. Pomocne bywa też narysowanie wykresu. Przykład : f[x_] := x^4 - x^2 (* zapis f'[x] jest równoważny zapisowi D[f[x],x] *) (* polecenie Solve służy do rozwiazywania równań *) f''[x] /.Solve[f'[x] ==0] (* test drugiej pochodnej pokazuje, że funkcja ma trzy ekstrema *) {x, f[x]} /. Solve[f'[x] == 0]; Grid[Prepend[%, {"x", "f(x)"}], Dividers -> {2 -> True, 2 -> True}] (* ekstrema i wartości funkcji w tych punktach *)
Rozdział 2: Równania różniczkowe DSolve -polecenie służące do rozwiązywania równań różniczkowych zwyczajnych, cząstkowych i układów tych równań Przykład (rozwiązywanie równań różniczkowych zwyczajnych): (* równanie bez warunku początkowego *) DSolve[f'[x]-3*x*f[x]==1,f[x],x] (* równanie z warunkiem początkowym *) Dsolve[f'[x]-3*x*f[x]==1 && f[0]==2,f[x],x] solex5=dsolve[f'[x]-3*x*f[x]\[equal]1&&f[0]\ [Equal]a,f[x],x] (*wizualizacja rozwiązania dla wybranych warunków początkowych *) Plot[Evaluate[f[x]/.solEx5/.{a->-3.2+0.2Range[30]}],{x,- 2,2},PlotRange->{-4,4}] (* z warunkami brzegowymi *) solex5=dsolve[x''[t]==x[t]+sin[t] && x[0]==a && x[1]==b,x[t],t]//fullsimplify
(*wizualizacja rozwiązania dla wybranych warunków brzegowych *) Plot[Evaluate[x[t]/.solEx5/.{a->{-2,-1,0,1,2},b->0}], {t,0,2}] Plot[Evaluate[x[t]/.solEx5/.{a->0,b->{-2,-1,0,1,2}}], {t,0,2}] Przykład (rozwiązywanie układów równań różniczkowych zwyczajnych): DSolve[x'[t]==y[t] && y'[t]==x[t]+sin[3t] (*układ*), {x[t],y[t]},t]//fullsimplify solex6=dsolve[x'[t]-y[t]&&y'[t]x[t]+sin[3 t] (*układ) && x[0]==a && y[0]==b,(* warunki początkowe *) {x[t],y[t]},t]//fullsimplify ParametricPlot[Table[{x[t],y[t]}/.solEx6/.{a->m,b->1}, {m,0,2,0.25}],{t,0,5},evaluated->true]
(* czy jeżeli linie rozwiązań się przecinają, to przeczy to twierdzeniu Pickarda?*) ParametricPlot3D[Table[{x[t],y[t],t}/.solEx6/.{am,b1}, {m,0,2,0.25}],{t,0,10},evaluated->true,aspectratio->1] Przykład (rozwiązywanie równań różniczkowych cząstkowych): solex7=dsolve[d[f[x,t],t,t]+d[f[x,t],t]==0 && f[x,- 1]==Sin[x]&&f[x,1]==Cos[x] (* warunki początkowe *),f[x,t],{x,t}](* to co widzimy na obrazku zależy od interpretacji równania -- podręczniki*) Plot3D[f[x,t]/.solEx7,{x,-2,2},{t,-1,1}] Zadania Zadanie 1. Rozwiązać równania a) a x^2 + b x + c==0, względem zmiennej x, a 0 b) x^3-2x+1==0 c) Cos[x]==Sin[2x] d) Cos[x]==Sin[2x], w przedziale [0,2] e) x^2+3y^2==10, gdy x,y Integers f) x^2+(y-2)^2==1, względem zmiennej y g) x^2+y==1 && x+y^2==1 Zadanie 2. Rozwiązać nierówności a) x^2+y^2<2 && x y >0
b) x^2-x<0 && 0<2 x && x>x^3 c) Sin[x]+Cos[x]<=½ Zadanie 3. Wyznaczyć ekstrema globalne funkcji a) f(x)=-x^3 + 15x^5 na przedziale [-0.25,0.25] b) f(x)=-x^3 + 15x^5 na przedziale [-1,1] c) f(x)=sin[x]+x Cos[x], na przedziale [0,2π] d) f(x,y)=x^2 y+x y^3, na prostej y=2x-1 e) f(x,y)=x^4-x^2 y+x y, na kwadracie [0,1]^2 Zadanie 4. Rozwiązać równanie różniczkowe, narysować rozwiązania a) x [t]==x[t] b) x [t]==x[t] z warunkiem początkowym x[0]=1 c) x [t]+x [t]+x[t]==0