Loading [MathJax]/extensions/TeX/newcommand.js

MPZI_predavanje_06

2443 days ago by fresl

Jednadžbe i nejednadžbe


Jednadžbe su relacijski izrazi koji sadrže dva aritmetička (pod)izraza povezana relacijskim operatorom  ==, dok su nejednadžbe relacijski izrazi koji sadrže dva aritmetička izraza povezana relacijskim operatorima <><=  i  >=.  (Aritmetičke ste izraze upoznali na drugom predavanju.) Izrazi koji ulaze u jednadžbe i nejednadžbe ponajčešće sadrže varijable koje se uzimaju za nepoznanice.

Izraz lijevo od relacijskoga operatora naziva se lijevom stranom (engl. left hand side, lhs), a izraz operatoru zdesna desnom stranom (engl. right hand side, rhs).

       
sin(x)
sin(x)
       
sin(x)
sin(x)
       
sin(x)
sin(x)
       
x^2
x^2
       
x^2
x^2
       
x^2
x^2


Nelinearne algebarske jednadžbe s jednom nepoznanicom


Jednadžbe oblika  a == b,  gdje su a i b aritmetički izrazi od kojih barem jedan sadrži varijablu x, možemo pisati u obliku  a − b == 0.  Definiramo li s pomoću izraza  a − b  funkciju  f(x) = a − b,  rješavanje jednadžbe  a == b  može se interpretirati i kao nalaženje nul–točaka funkcije f(): treba naći vrijednosti varijable x za koje je  f(x) == 0. Nul–točke funkcije nazivamo i njezinim korijenima.

       
       

Za nalaženje točnih rješenja nelinearnih jednažbi s jednom nepoznanicom upotrebljava se funkcija solve():

       
[x == -sqrt(1/6*sqrt(33) + 3/2), x == sqrt(1/6*sqrt(33) + 3/2), x ==
-sqrt(-1/6*sqrt(33) + 3/2), x == sqrt(-1/6*sqrt(33) + 3/2)]
[x == -sqrt(1/6*sqrt(33) + 3/2), x == sqrt(1/6*sqrt(33) + 3/2), x == -sqrt(-1/6*sqrt(33) + 3/2), x == sqrt(-1/6*sqrt(33) + 3/2)]
       

                                
                            

                                

Budući da nelinearne jednadžbe najčešće imaju više rješenja, ona su navedena u listi:

       
       
4
4
       

                                
                            

                                
       

                                
                            

                                

Svaka je komponenta liste rješenja relacijski izraz s operatorom ==. Lijeva je strana izraza oznaka nepoznanice, a desna vrijednost rješenja:

       
x == -sqrt(1/6*sqrt(33) + 3/2)
x == -sqrt(1/6*sqrt(33) + 3/2)
       
x
x
       
-sqrt(1/6*sqrt(33) + 3/2)
-sqrt(1/6*sqrt(33) + 3/2)

Rješenje možemo provjeriti uvrštavanjem:

       
1/36*(sqrt(33) + 9)^2 - 1/2*sqrt(33) - 19/6
1/36*(sqrt(33) + 9)^2 - 1/2*sqrt(33) - 19/6
       
0
0
       
1/36*(sqrt(33) - 9)^2 + 1/2*sqrt(33) - 19/6
1/36*(sqrt(33) - 9)^2 + 1/2*sqrt(33) - 19/6
       
0
0

Približne „realne” vrijednosti rješenja možemo, kao i uvijek, dobiti s pomoću funkcije N():

       
-1.56761829147160
-1.56761829147160
       
1.5676182914715999542878182054
1.5676182914715999542878182054
       
-0.736595473950024953603231468788402628447700698803
-0.736595473950024953603231468788402628447700698803
       
0.736595473950024953603231468788402628447700698802725146229432535171117146
0.736595473950024953603231468788402628447700698802725146229432535171117146

... i „realna” se rješenja, naravno, mogu provjeriti, ali tada ne treba očekivati točno zadovoljenje jednadžbe:

       
-8.88178419700125e-16
-8.88178419700125e-16
       
6.3108872417680944432938285223e-30
6.3108872417680944432938285223e-30
       
-4.27642353614751303382485834744237100610431500817e-50
-4.27642353614751303382485834744237100610431500817e-50
       
-3.53737464016668451855824972300304366432911374927310085530570894138105520e-74
-3.53737464016668451855824972300304366432911374927310085530570894138105520e-74

 

Za polinome stupnja manjega od 5 nul–točke se uvijek mogu točno odrediti. Ako su koeficijenti polinoma cijeli ili racionalni brojevi, onda pod točnim rješenjem podrazumijevamo izraze koji sadrže samo cijele i racionalne brojeve i njihove cijele i racionalne potencije povezane aritmetičkim operatorima. Rješenja mogu biti i kompleksna, pri čemu rečeno vrijedi za realni i za imaginarni dio:

       
[x == 1/2*I*sqrt(3) - 1/2, x == -1/2*I*sqrt(3) - 1/2, x == 1]
[x == 1/2*I*sqrt(3) - 1/2, x == -1/2*I*sqrt(3) - 1/2, x == 1]
       

                                
                            

                                
       

Ako su koeficijenti polinoma zadani kao „realni” brojevi (u zapisu s točkom), SageMath će ih prešutno pretvoriti u racionalne brojeve:

       
[x == 1/10*5^(2/3)*(I*sqrt(3) - 1), x == 1/10*5^(2/3)*(-I*sqrt(3) - 1), x ==
1/5*5^(2/3)]
[x == 1/10*5^(2/3)*(I*sqrt(3) - 1), x == 1/10*5^(2/3)*(-I*sqrt(3) - 1), x == 1/5*5^(2/3)]
       

                                
                            

                                
       
[x == 1/10*5^(2/3)*(I*sqrt(3) - 1), x == 1/10*5^(2/3)*(-I*sqrt(3) - 1), x ==
1/5*5^(2/3)]
[x == 1/10*5^(2/3)*(I*sqrt(3) - 1), x == 1/10*5^(2/3)*(-I*sqrt(3) - 1), x == 1/5*5^(2/3)]
       

                                
                            

                                

Koeficijenti polinoma mogu biti i funkcije cijelih i racionalnih brojeva:

       

                                
                            

                                
       
[x == -1/2*2^(1/6)*(I*sqrt(3) + 1) - 1/2*sqrt(2), x == -1/2*2^(1/6)*(-I*sqrt(3)
+ 1) - 1/2*sqrt(2), x == -1/2*sqrt(2) + 2^(1/6)]
[x == -1/2*2^(1/6)*(I*sqrt(3) + 1) - 1/2*sqrt(2), x == -1/2*2^(1/6)*(-I*sqrt(3) + 1) - 1/2*sqrt(2), x == -1/2*sqrt(2) + 2^(1/6)]
       

                                
                            

                                

Napokon, koeficijenti mogu biti zadani i kao opći brojevi:

       
(a, b, c)
(a, b, c)
       

                                
                            

                                
       
[x == b - sqrt(-sqrt(c/a)), x == b + sqrt(-sqrt(c/a)), x == b - (c/a)^(1/4), x
== b + (c/a)^(1/4)]
[x == b - sqrt(-sqrt(c/a)), x == b + sqrt(-sqrt(c/a)), x == b - (c/a)^(1/4), x == b + (c/a)^(1/4)]
       

                                
                            

                                

Polinom n-tog stupnja ima n nul–točaka. Neke od njih, kao što smo vidjeli, mogu biti kompleksne; ako su koeficijenti polinoma realni brojevi, kompleksne se nul–točke uvijek javljaju u konjugirano–kompleksnim parovima. Osim toga, neke nul–točke mogu biti višestruke:

       
[x == 1, x == (-1/2)]
[x == 1, x == (-1/2)]
       
([x == 1, x == (-1/2)], [2, 2])
([x == 1, x == (-1/2)], [2, 2])
       
       
([x == 1], [3])
([x == 1], [3])
       
       
([x == (-2*I), x == (2*I)], [2, 2])
([x == (-2*I), x == (2*I)], [2, 2])
       

Funkcijom solve() mogu se naći i korijeni nekih polinoma stupnja višega od 4:

       

                                
                            

                                
       
       
       

                                
                            

                                
       

                                
                            

                                

... nekih, ali ne svih...

       

                                
                            

                                
       
[0 == 6*x^7 + 2*x^6 + 4*x^5 + 6*x^4 - 4*x^3 + 2*x^2 - 4*x + 1]
[0 == 6*x^7 + 2*x^6 + 4*x^5 + 6*x^4 - 4*x^3 + 2*x^2 - 4*x + 1]
       

                                
                            

                                
       

Funkcija solve() može zatražiti pomoć funkcije to_poly_solve() programskog paketa Maxima (koji je „ugrađen” u SageMath), ali će pritom često pronaći približna, a ne točna rješenja:

       
[x == -1.232674118658641,
 x == 0.2782547748379183,
 x == 0.6333373978783076,
 x == (0.2357507950017957 - 1.068709145725271*I),
 x == (-0.2418764787770275 - 0.762933981471788*I),
 x == (-0.2418764787770275 + 0.762933981471788*I),
 x == (0.2357507950017957 + 1.068709145725271*I)]
[x == -1.232674118658641,
 x == 0.2782547748379183,
 x == 0.6333373978783076,
 x == (0.2357507950017957 - 1.068709145725271*I),
 x == (-0.2418764787770275 - 0.762933981471788*I),
 x == (-0.2418764787770275 + 0.762933981471788*I),
 x == (0.2357507950017957 + 1.068709145725271*I)]

Funkcijom solve(), potpomognutom funkcijom to_poly_solve(), mogu se naći i nul–točke još nekih funkcija:

       

                                
                            

                                
       
[x == 1/2*sqrt(x^2 + 1)]
[x == 1/2*sqrt(x^2 + 1)]
       

                                
                            

                                
       
       
[x == 1/3*sqrt(3)]
[x == 1/3*sqrt(3)]
       
0.577350269189626
0.577350269189626

... nekih, ali ne svih...

       

                                
                            

                                
       
       
[]
[]

Ako funkcija ima beskonačno mnogo (periodičnih) korijena, za njihov će prikaz biti uvedena pomoćna varijabla; varijable oblika zNN su cjelobrojne, a oblika rNN realne:

       
       
[x == -1/2*pi + 2*pi*z39, x == 5/6*pi + 2*pi*z41, x == 1/6*pi + 2*pi*z43]
[x == -1/2*pi + 2*pi*z39, x == 5/6*pi + 2*pi*z41, x == 1/6*pi + 2*pi*z43]
       

                                
                            

                                


Korijeni polinoma


Približne vrijednosti korijena polinoma možemo naći funkcijom .roots(). Ona nalazi i korijene polinoma stupnjeva viših od 4. Pritom treba funkcijom .polynomial() „opću” funkciju „pretvoriti” u polinom navodeći kojemu skupu brojeva pripadaju njegovi koeficijenti — u istom će se skupu tražiti i korijeni, a funkcija nalazi sve korijene koji su u njemu.

       
       
       
[]
[]
       
[(-1.23267411590233, 1), (0.278254759437390, 1), (0.633337390682075, 1)]
[(-1.23267411590233, 1), (0.278254759437390, 1), (0.633337390682075, 1)]
       
[(-1.23267411590233, 1),
 (0.278254759437390, 1),
 (0.633337390682075, 1),
 (-0.241876478777028 - 0.762933981471788*I, 1),
 (-0.241876478777028 + 0.762933981471788*I, 1),
 (0.235750795001795 - 1.06870914572527*I, 1),
 (0.235750795001795 + 1.06870914572527*I, 1)]
[(-1.23267411590233, 1),
 (0.278254759437390, 1),
 (0.633337390682075, 1),
 (-0.241876478777028 - 0.762933981471788*I, 1),
 (-0.241876478777028 + 0.762933981471788*I, 1),
 (0.235750795001795 - 1.06870914572527*I, 1),
 (0.235750795001795 + 1.06870914572527*I, 1)]

Rezultat funkcije .roots() je lista uređenih parova: prva je komponenta para vrijednost korijena, a druga njegova „strukost”. Ako nas „strukosti” ne zanimaju, možemo zatražiti i samo listu vrijednosti:

       
[-1.23267411590233, 0.278254759437390, 0.633337390682075]
[-1.23267411590233, 0.278254759437390, 0.633337390682075]

Postoji uska veza između korijena polinoma i rastavljanja polinoma na faktore (o kojemu je bilo riječi na drugom predavanju): ako su x_1,\, x_1,\,\ldots,\,x_n realni i kompleksni korijeni polinoma

P_n (x) \,=\, a_n x^n + a_{n_1} x^{n-1} + \cdots + a_2 x^2 + a_1 x + a_0,

onda je njegova faktorizacija

P_n (x) \,=\, a_n\cdot(x - x_1)\cdot(x - x_2)\cdots(x - x_n).

       
(3.00000000000000) * (x - 0.633337390682075) * (x - 0.278254759437390) * (x -
0.235750795001795 - 1.06870914572527*I) * (x - 0.235750795001795 +
1.06870914572527*I) * (x + 0.241876478777028 - 0.762933981471788*I) * (x +
0.241876478777028 + 0.762933981471788*I) * (x + 1.23267411590233)
(3.00000000000000) * (x - 0.633337390682075) * (x - 0.278254759437390) * (x - 0.235750795001795 - 1.06870914572527*I) * (x - 0.235750795001795 + 1.06870914572527*I) * (x + 0.241876478777028 - 0.762933981471788*I) * (x + 0.241876478777028 + 0.762933981471788*I) * (x + 1.23267411590233)
       

                                
                            

                                

Ako P_n zadamo na skupu \mathbb{R}, u rastavu se mogu pojaviti i polinomi drugoga stupnja (koji nemaju korijena u skupu \mathbb{R}, nego u skupu \mathbb{C}):

       
(3.00000000000000) * (x - 0.633337390682075) * (x - 0.278254759437390) * (x +
1.23267411590233) * (x^2 - 0.471501590003590*x + 1.19771767550081) * (x^2 +
0.483752957554055*x + 0.640572491069968)
(3.00000000000000) * (x - 0.633337390682075) * (x - 0.278254759437390) * (x + 1.23267411590233) * (x^2 - 0.471501590003590*x + 1.19771767550081) * (x^2 + 0.483752957554055*x + 0.640572491069968)
       

                                
                            

                                


Numeričko rješavanje nelinearnih jednadžbi s jednom nepoznanicom


Razmjerno se mali broj „općih” nelinearnih jednadžbi može točno riješiti.

       

                                
                            

                                
       
[]
[]
       

Nelinearne se jednadžbe rješavaju, odnosno, što je isto, nul–točke nelinearnih funkcija određuju se stoga najčešće različitim numeričkim iteracijskim postupcima, što znači postupnim približavanjem u nizu sve točnijih, ali ipak uvijek tek približnih rješenja: iteracijski se postupak prekida kad je  |f(x)| < \tau,  gdje je \tau zadana točnost.

Numeričkom određivanju korijena funkcije jedne varijable namijenjena je funkcija find_root(). Za njezinu primjenu treba zadati i krajeve intervala u kojemu se traženi korijen nalazi. Taj se interval može odrediti pomoću grafa funkcije.

       
0.25390434474389206
4.718447854656915e-16
0.25390434474389206
4.718447854656915e-16
       
Traceback (click to the left of this block for traceback)
...
RuntimeError: f appears to have no zero on the interval
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_5.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("ZmluZF9yb290IChnLCAyLiwgMy4p"),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/tmp/tmpRlLtdq/___code___.py", line 3, in <module>
    exec compile(u'find_root (g, _sage_const_2p , _sage_const_3p )
  File "", line 1, in <module>
    
  File "sage/misc/lazy_import.pyx", line 354, in sage.misc.lazy_import.LazyImport.__call__ (build/cythonized/sage/misc/lazy_import.c:3756)
  File "/opt/SageMath/local/lib/python2.7/site-packages/sage/numerical/optimize.py", line 82, in find_root
    return f.find_root(a=a,b=b,xtol=xtol,rtol=rtol,maxiter=maxiter,full_output=full_output)
  File "sage/symbolic/expression.pyx", line 11785, in sage.symbolic.expression.Expression.find_root (build/cythonized/sage/symbolic/expression.cpp:66672)
  File "/opt/SageMath/local/lib/python2.7/site-packages/sage/numerical/optimize.py", line 100, in find_root
    raise RuntimeError("f appears to have no zero on the interval")
RuntimeError: f appears to have no zero on the interval

Podrazumijeva se točnost  \tau = 1\cdot 10^{-12}, ali se ona može i povećati ili smanjiti.

       
0.2539066336808675
4.373115521649762e-06
0.2539066336808675
4.373115521649762e-06

Ako funkcija ima više nul–točaka, možemo ih naći pogodnim odabirom intervala.

       
       
       
-1.567618291471598
-1.567618291471598
       
-0.73659547395003
-0.73659547395003
       
0.73659547395003
0.73659547395003
       
1.567618291471598
1.567618291471598

Ako zadamo interval u kojem se nalazi više nul–točaka, find_root() će naći jednu od njih:

       
1.5676182914716
1.5676182914716
       
-0.736595473950025
-0.736595473950025
       
-0.7365954739500242
-0.7365954739500242

Možemo dobiti i potpunije podatke o iteracijskom postupku.

       

                                
                            

                                
       
       
       
3.7999999999999217
3.7999999999999217
       
      converged: True
           flag: 'converged'
 function_calls: 10
     iterations: 9
           root: 3.7999999999999217
      converged: True
           flag: 'converged'
 function_calls: 10
     iterations: 9
           root: 3.7999999999999217
       
       
3.8000000000000007
3.8000000000000007
       
      converged: True
           flag: 'converged'
 function_calls: 6
     iterations: 5
           root: 3.8000000000000007
      converged: True
           flag: 'converged'
 function_calls: 6
     iterations: 5
           root: 3.8000000000000007
       
       
3.799999982477675
3.799999982477675
       
      converged: True
           flag: 'converged'
 function_calls: 8
     iterations: 7
           root: 3.799999982477675
      converged: True
           flag: 'converged'
 function_calls: 8
     iterations: 7
           root: 3.799999982477675


Sustavi linearnih algebarskih jednadžbi


Manji sustavi linearnih jednadžbi mogu se riješiti funkcijom solve().

Jednadžbe se navode u listi, a sve nepoznanice moraju prethodno biti „uvedene” kao varijable:

       
(x, y, z)
(x, y, z)
       
[[x == 1, y == 1, z == 1]]
[[x == 1, y == 1, z == 1]]

... ili (možda) preglednije napisano:

       
[[x == 1, y == 1, z == 1]]
[[x == 1, y == 1, z == 1]]

Sustav može imati jedinstveno rješenje ili beskonačno mnogo njih, a može i ne imati rješenje:

       
[[x == r2, y == -2*r2 + 3, z == r2]]
[[x == r2, y == -2*r2 + 3, z == r2]]
       

                                
                            

                                
       
[]
[]

 

Veće je sustave pogodnije prikazati u matričnom obliku \mathbf{A}\, \mathbf{x} = \mathbf{b}.

Primjerice, za sustav

a_{0,0}\,x_0 + a_{0,1}\,x_1 + a_{0,2}\,x_2  \,=\, b_0

a_{1,0}\,x_0 + a_{1,1}\,x_1 + a_{1,2}\,x_2  \,=\, b_1

a_{2,0}\,x_0 + a_{2,1}\,x_1 + a_{2,2}\,x_2  \,=\, b_2

su

\mathbf{A} = \left[ \begin{array}{ccc} a_{0,0} & a_{0,1} & a_{0,2} \\ a_{1,0} & a_{1,1} & a_{1,2} \\  a_{2,0} & a_{2,1} & a_{2,2} \end{array} \right],    \mathbf{b} = \left[ \begin{array}{c} b_0 \\ b_1 \\ b_2 \end{array} \right]    i    \mathbf{x} = \left[ \begin{array}{c} x_0 \\ x_1 \\ x_2 \end{array} \right],

dok su za sustav

4\, x_0 - x_1 - x_2 - x_5 \,=\, 5

-x_0 + 4\, x_1 - x_2 - x3 \,=\, -5

-x_0 - x_1 + 4\, x_2 - x_3 - x_4 \,=\, 4

-x_1 - x_2 + 4\, x_3 - x_4 - x_5 \,=\, -6

-x_2 - x_3 + 4\, x_4 - x_5 \,=\, -5

-x_0 - x_3 - x_4 + 4\, x_5 \,=\, -5

matrica sustava \mathbf{A} i vektor slobodnih članova \mathbf{b}  (uzmemo li da su koeficijenti u jednadžbama „realni”)

       

                                
                            

                                
       

                                
                            

                                
       

... ili:

       
       

                                
                            

                                

Ako su koeficijenti u jednadžbama racionalni brojevi, onda su

       

                                
                            

                                
       

                                
                            

                                
       

                                
                            

                                
       


Sustavi nelinearnih algebarskih jednadžbi


Tek se rijetki manji sustavi nelinearnih jednadžbi mogu točno riješiti.

       
       
       
       
[[x == (1/2), y == 0], [x == (-1/2), y == 0], [x == 0, y == (-1/2*I)], [x == 0,
y == (1/2*I)]]
[[x == (1/2), y == 0], [x == (-1/2), y == 0], [x == 0, y == (-1/2*I)], [x == 0, y == (1/2*I)]]
       

                                
                            

                                

Sustavi nelinearnih algebarskih jednadžbi mogu se numerički rješavati primjenom funkcija modula optimize (Optimization and root finding) programskoga paketa SciPy, uključenog i u SageMath, ali to je druga — i razmjerno duga — priča.


Nejednadžbe


Funkcijom solve() mogu se rješavati i nejednadžbe. Rješenja nejednadžbi konačni su ili beskonačni odsječci osi x.

       
       
[[x > -sqrt(3) + 1, x < sqrt(3) + 1]]
[[x > -sqrt(3) + 1, x < sqrt(3) + 1]]
       

                                
                            

                                

... vrijednosti funkcije x^2 - 2\,x - 2 bit će negativne ako je  x\in (-\sqrt{3}+1, \sqrt{3}+1).

       
[[x < -sqrt(3) + 1], [x > sqrt(3) + 1]]
[[x < -sqrt(3) + 1], [x > sqrt(3) + 1]]
       

                                
                            

                                

... vrijednosti funkcije x^2 - 2\,x - 2 bit će pozitivne ako je  x\in (-\infty, -\sqrt{3}+1)  ili ako je  x\in (\sqrt{3}+1, \infty).

       
       
[[x < -sqrt(3) + 1], [x > sqrt(3) + 1]]
[[x < -sqrt(3) + 1], [x > sqrt(3) + 1]]
       

                                
                            

                                

... vrijednosti funkcije x^2 bit će veće od vrijednosti funkcije  2\,x + 2  ako je  x\in (-\infty, -\sqrt{3}+1)  ili ako je  x\in (\sqrt{3}+1, \infty).

       
[[x > -sqrt(3) + 1, x < sqrt(3) + 1]]
[[x > -sqrt(3) + 1, x < sqrt(3) + 1]]
       

                                
                            

                                

... vrijednosti funkcije x^2 bit će manje od vrijednosti funkcije  2\,x + 2  ako je  x\in (-\sqrt{3}+1, \sqrt{3}+1).

       
       
[x < +Infinity]
[x < +Infinity]

... vrijednosti funkcije  x^2 + 1  pozitivne su za sve x (koji su manji od \infty).

       
[]
[]

... niti jedna vrijednost funkcije  x^2 + 1  nije negativna.

 

Nejednadžbe i njihove sustave primjenjujemo u određivanju domena funkcija. Nažalost, SageMath će ponekad zatrebati našu pomoć u rješavanju sustava nejednadžbi: problem ćemo morati riješiti u nekoliko koraka.

Primjerica, neka je  f(x) = \dfrac{\sqrt{(x-2)^2 - 4}}{\ln\, (x+4)}.  Treba odrediti domenu funkcije f. Podsjećamo:

  • izraz \sqrt{x} poprima realne vrijednosti za x \ge 0;
  • izraz \ln x poprima konačne realne vrijednosti za x > 0;
  • izraz x/y je definiran za y \ne 0.
       
verbose 0 (3763: plot.py, generate_plot_points) WARNING: When plotting, failed
to evaluate function at 101 points.
verbose 0 (3763: plot.py, generate_plot_points) Last error message: 'math domain
error'
verbose 0 (3763: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 101 points.
verbose 0 (3763: plot.py, generate_plot_points) Last error message: 'math domain error'
       
[[-4 < x, x < 0, log(x + 4) != 0], [4 < x, log(x + 4) != 0], [x == 0,
2*log(2) != 0], [x == 4, 3*log(2) != 0]]
[[-4 < x, x < 0, log(x + 4) != 0], [4 < x, log(x + 4) != 0], [x == 0, 2*log(2) != 0], [x == 4, 3*log(2) != 0]]
       

                                
                            

                                
       
[[-4 < x, x < 0], [4 < x], [x == 0], [x == 4]]
[[-4 < x, x < 0], [4 < x], [x == 0], [x == 4]]
       
#0: solve_rat_ineq(ineq=log(_SAGE_VAR_x+4) # 0)
[[log(x + 4) != 0]]
#0: solve_rat_ineq(ineq=log(_SAGE_VAR_x+4) # 0)
[[log(x + 4) != 0]]
       
[x == -3]
[x == -3]

... domena funkcije  f  je  (-4, 0] \!\setminus\!\{-3\}   \cup   [4, \infty).

 

Kao drugi primjer, neka je  f(x) = \dfrac{\sqrt{(x-2)^2 - \frac{1}{2}}}{\ln x}.

       
verbose 0 (3763: plot.py, generate_plot_points) WARNING: When plotting, failed
to evaluate function at 114 points.
verbose 0 (3763: plot.py, generate_plot_points) Last error message: 'math domain
error'
verbose 0 (3763: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 114 points.
verbose 0 (3763: plot.py, generate_plot_points) Last error message: 'math domain error'
       
[[0 < x, 2*x^2 - 8*x + 7 == 0], [0 < x, 2*x^2 - 8*x + 7 > 0]]
[[0 < x, 2*x^2 - 8*x + 7 == 0], [0 < x, 2*x^2 - 8*x + 7 > 0]]
       
[[x <= -1/2*sqrt(2) + 2], [x >= 1/2*sqrt(2) + 2]]
[[x <= -1/2*sqrt(2) + 2], [x >= 1/2*sqrt(2) + 2]]
       
[[0 < x, x < -1/2*sqrt(2) + 2], [x == -1/2*sqrt(2) + 2]]
[[0 < x, x < -1/2*sqrt(2) + 2], [x == -1/2*sqrt(2) + 2]]
       
[[1/2*sqrt(2) + 2 < x], [x == 1/2*sqrt(2) + 2]]
[[1/2*sqrt(2) + 2 < x], [x == 1/2*sqrt(2) + 2]]
       
[x == 1]
[x == 1]

... domena funkcije  f  je  (0, 2-\frac{1}{2}\sqrt{2}] \!\setminus\!\{1\}   \cup   [2+\frac{1}{2}\sqrt{2}, \infty).