Processing math: 100%

MPZI_predavanje_06

2462 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)]
       
[x=1633+32,x=1633+32,x=1633+32,x=1633+32]
                                
                            

                                

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

       
       
4
4
       
x=1633+32
                                
                            

                                
       
x=1633+32
                                
                            

                                

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]
       
[x=12i312,x=12i312,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=110523(i31),x=110523(i31),x=15523]
                                
                            

                                
       
[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=110523(i31),x=110523(i31),x=15523]
                                
                            

                                

Koeficijenti polinoma mogu biti i funkcije cijelih i racionalnih brojeva:

       
x  x3+312x2+32x2+1212
                                
                            

                                
       
[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)]
       
[x=12216(i3+1)122,x=12216(i3+1)122,x=122+216]
                                
                            

                                

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

       
(a, b, c)
(a, b, c)
       
x  ab44ab3x+6ab2x24abx3+ax4c
                                
                            

                                
       
[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)]
       
[x=bca,x=b+ca,x=b(ca)14,x=b+(ca)14]
                                
                            

                                

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:

       
x  3x7+x6+2x5+3x42x3+x22x
                                
                            

                                
       
       
       
x=12133(1182833+12)234(1182833+12)1312(1182833+12)13+6133(1182833+12)234(1182833+12)13+43(1182833+12)13
x=12133(1182833+12)234(1182833+12)13+12(1182833+12)13+6133(1182833+12)234(1182833+12)13+43(1182833+12)13
x=12133(1182833+12)234(1182833+12)1312(1182833+12)136133(1182833+12)234(1182833+12)13+43(1182833+12)13
x=12133(1182833+12)234(1182833+12)13+12(1182833+12)136133(1182833+12)234(1182833+12)13+43(1182833+12)13
x=16i2316
x=16i2316
x=0
                                
                            

                                
       
1.22074408460576
0.724491959000516
0.2481260628026221.03398206097597i
0.248126062802622+1.03398206097597i
0.1666666666666670.799305253885453i
0.166666666666667+0.799305253885453i
0.000000000000000
                                
                            

                                

... nekih, ali ne svih...

       
x  3x7+x6+2x5+3x42x3+x22x+12
                                
                            

                                
       
[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]
       
[0=6x7+2x6+4x5+6x44x3+2x24x+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  xx2+112
                                
                            

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

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

... nekih, ali ne svih...

       
x  x+xx2+112
                                
                            

                                
       
       
[]
[]

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]
       
[x=12π+2πz39,x=56π+2πz41,x=16π+2π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 x1,x1,,xn realni i kompleksni korijeni polinoma

Pn(x)=anxn+an1xn1++a2x2+a1x+a0,

onda je njegova faktorizacija

Pn(x)=an(xx1)(xx2)(xxn).

       
(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)
       
(3.00000000000000)(x0.633337390682075)(x0.278254759437390)(x0.2357507950017951.06870914572527i)(x0.235750795001795+1.06870914572527i)(x+0.2418764787770280.762933981471788i)(x+0.241876478777028+0.762933981471788i)(x+1.23267411590233)
                                
                            

                                

Ako Pn zadamo na skupu R, u rastavu se mogu pojaviti i polinomi drugoga stupnja (koji nemaju korijena u skupu R, nego u skupu 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)
       
(3.00000000000000)(x0.633337390682075)(x0.278254759437390)(x+1.23267411590233)(x20.471501590003590x+1.19771767550081)(x2+0.483752957554055x+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.

       
x  x+xx2+112
                                
                            

                                
       
[]
[]
       

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)|<τ,  gdje je τ 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  τ=11012, 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.

       
x  x+1(x+1)2+16+x5(x5)2+1
                                
                            

                                
       
       
       
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]]
       
[[x=r4,y=2r4+3,z=r4]]
                                
                            

                                
       
[]
[]

 

Veće je sustave pogodnije prikazati u matričnom obliku Ax=b.

Primjerice, za sustav

a0,0x0+a0,1x1+a0,2x2=b0

a1,0x0+a1,1x1+a1,2x2=b1

a2,0x0+a2,1x1+a2,2x2=b2

su

A=[a0,0a0,1a0,2a1,0a1,1a1,2a2,0a2,1a2,2],    b=[b0b1b2]    i    x=[x0x1x2],

dok su za sustav

4x0x1x2x5=5

x0+4x1x2x3=5

x0x1+4x2x3x4=4

x1x2+4x3x4x5=6

x2x3+4x4x5=5

x0x3x4+4x5=5

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

       
(4.001.001.000.0000.0001.001.004.001.001.000.0000.0001.001.004.001.001.000.0000.0001.001.004.001.001.000.0000.0001.001.004.001.001.000.0000.0001.001.004.00)
                                
                            

                                
       
(5.005.004.006.005.003.00)
                                
                            

                                
       

... ili:

       
       
(0.6703296703296702.956043956043961.857142857142864.296703296703303.505494505494502.86813186813187)
                                
                            

                                

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

       
(411001141100114110011411001141100114)
                                
                            

                                
       
(554653)
                                
                            

                                
       
(619126991137391913199126191)
                                
                            

                                
       


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)]]
       
[[x=(12),y=0],[x=(12),y=0],[x=0,y=(12i)],[x=0,y=(12i)]]
                                
                            

                                

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]]
       
[[x>3+1,x<3+1]]
                                
                            

                                

... vrijednosti funkcije x22x2 bit će negativne ako je  x(3+1,3+1).

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

                                

... vrijednosti funkcije x22x2 bit će pozitivne ako je  x(,3+1)  ili ako je  x(3+1,).

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

                                

... vrijednosti funkcije x2 bit će veće od vrijednosti funkcije  2x+2  ako je  x(,3+1)  ili ako je  x(3+1,).

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

                                

... vrijednosti funkcije x2 bit će manje od vrijednosti funkcije  2x+2  ako je  x(3+1,3+1).

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

... vrijednosti funkcije  x2+1  pozitivne su za sve x (koji su manji od ).

       
[]
[]

... niti jedna vrijednost funkcije  x2+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)=(x2)24ln(x+4).  Treba odrediti domenu funkcije f. Podsjećamo:

  • izraz x poprima realne vrijednosti za x0;
  • izraz lnx poprima konačne realne vrijednosti za x>0;
  • izraz x/y je definiran za y0.
       
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,log(x+4)0],[4<x,log(x+4)0],[x=0,2log(2)0],[x=4,3log(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]{3}[4,).

 

Kao drugi primjer, neka je  f(x)=(x2)212lnx.

       
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,2122]{1}[2+122,).