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=−√16√33+32,x=√16√33+32,x=−√−16√33+32,x=√−16√33+32]
|
Budući da nelinearne jednadžbe najčešće imaju više rješenja, ona su navedena u listi:
|
4 4 |
x=−√16√33+32
|
x=√−16√33+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=12i√3−12,x=−12i√3−12,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=110⋅523(i√3−1),x=110⋅523(−i√3−1),x=15⋅523]
|
[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=110⋅523(i√3−1),x=110⋅523(−i√3−1),x=15⋅523]
|
Koeficijenti polinoma mogu biti i funkcije cijelih i racionalnih brojeva:
x ↦ x3+3√12x2+32x−√2+12√12
|
[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=−12⋅216(i√3+1)−12√2,x=−12⋅216(−i√3+1)−12√2,x=−12√2+216]
|
Napokon, koeficijenti mogu biti zadani i kao opći brojevi:
(a, b, c) (a, b, c) |
x ↦ ab4−4ab3x+6ab2x2−4abx3+ax4−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)] |
[x=b−√−√ca,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+3x4−2x3+x2−2x
|
![]() |
|
x=−12√13√3(118√283√3+12)23−4(118√283√3+12)13−12√−(118√283√3+12)13+6√13√3(118√283√3+12)23−4(118√283√3+12)13+43(118√283√3+12)13x=−12√13√3(118√283√3+12)23−4(118√283√3+12)13+12√−(118√283√3+12)13+6√13√3(118√283√3+12)23−4(118√283√3+12)13+43(118√283√3+12)13x=12√13√3(118√283√3+12)23−4(118√283√3+12)13−12√−(118√283√3+12)13−6√13√3(118√283√3+12)23−4(118√283√3+12)13+43(118√283√3+12)13x=12√13√3(118√283√3+12)23−4(118√283√3+12)13+12√−(118√283√3+12)13−6√13√3(118√283√3+12)23−4(118√283√3+12)13+43(118√283√3+12)13x=−16i√23−16x=16i√23−16x=0
|
−1.220744084605760.7244919590005160.248126062802622−1.03398206097597i0.248126062802622+1.03398206097597i−0.166666666666667−0.799305253885453i−0.166666666666667+0.799305253885453i0.000000000000000
|
... nekih, ali ne svih...
x ↦ 3x7+x6+2x5+3x4−2x3+x2−2x+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+6x4−4x3+2x2−4x+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 ↦ x√x2+1−12
|
[x == 1/2*sqrt(x^2 + 1)] [x == 1/2*sqrt(x^2 + 1)] |
[x=12√x2+1]
|
![]() |
[x == 1/3*sqrt(3)] [x == 1/3*sqrt(3)] |
0.577350269189626 0.577350269189626 |
... nekih, ali ne svih...
x ↦ x+x√x2+1−12
|
![]() |
[] [] |
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+an1xn−1+⋯+a2x2+a1x+a0,
onda je njegova faktorizacija
Pn(x)=an⋅(x−x1)⋅(x−x2)⋯(x−xn).
(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)⋅(x−0.633337390682075)⋅(x−0.278254759437390)⋅(x−0.235750795001795−1.06870914572527i)⋅(x−0.235750795001795+1.06870914572527i)⋅(x+0.241876478777028−0.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)⋅(x−0.633337390682075)⋅(x−0.278254759437390)⋅(x+1.23267411590233)⋅(x2−0.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+x√x2+1−12
|
[] [] |
![]() |
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 τ=1⋅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.
x ↦ x+1√(x+1)2+16+x−5√(x−5)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
4x0−x1−x2−x5=5
−x0+4x1−x2−x3=−5
−x0−x1+4x2−x3−x4=4
−x1−x2+4x3−x4−x5=−6
−x2−x3+4x4−x5=−5
−x0−x3−x4+4x5=−5
matrica sustava A i vektor slobodnih članova b (uzmemo li da su koeficijenti u jednadžbama „realni”)
(4.00−1.00−1.000.0000.000−1.00−1.004.00−1.00−1.000.0000.000−1.00−1.004.00−1.00−1.000.0000.000−1.00−1.004.00−1.00−1.000.0000.000−1.00−1.004.00−1.00−1.000.0000.000−1.00−1.004.00)
|
(5.00−5.004.00−6.00−5.00−3.00)
|
|
... ili:
|
(−0.670329670329670−2.95604395604396−1.85714285714286−4.29670329670330−3.50549450549450−2.86813186813187)
|
Ako su koeficijenti u jednadžbama racionalni brojevi, onda su
(4−1−100−1−14−1−100−1−14−1−100−1−14−1−100−1−14−1−100−1−14)
|
(5−54−6−5−3)
|
(−6191−26991−137−39191−31991−26191)
|
|
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 x2−2x−2 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 x2−2x−2 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)=√(x−2)2−4ln(x+4). Treba odrediti domenu funkcije f. Podsjećamo:
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)=√(x−2)2−12lnx.
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−12√2]∖{1}∪[2+12√2,∞).
|