(Za „lijepi” ispis svih rezultata označite kvadratić kraj riječi Typeset.)
Elementi matematičke analize (2)
Integrali
Određeni integrali
Geometrijski, vrijednost određenoga integrala funkcije f jedne varijable u granicama od a do b, A=∫baf(x)dx, uz a<b, jednaka je „ploštini” površine između krivulje kojom je funkcija f predočena (grafa funkcije f), osi x i ordinala u točkama a i b:
|
![]() |
|
Ako je graf funkcije ispod osi x (to jest, ako su vrijednosti funkcije negativne), dobivena je „ploština” negativna:
![]() |
|
... tako da je, primjerice,
|
![]() |
... i još jedan primjer:
|
![]() |
Zamijene li se granice integracije, vrijednost integrala mijenja predznak:
|
|
I, naravno:
|
Nazivi funkcija integral() i integrate() su sinonimi, a još su neki oblici poziva:
|
|
|
|
|
|
Jedna primjena u mehanici
Sila \vec{F} djeluje na pravcu osi x, \vec{F} = F\,\vec{\imath}, a njezina je vrijednost F funkcija položaja njezina hvatišta, F : x \mapsto F(x). Ako se njezino hvatište pomakne od točke x_0 do točke x_1, mehanički je rad sile \vec{F} na tom pomaku
W \,=\, \displaystyle\int_{x_0}^{x_1} F(x)\, dx.
|
![]() |
Kako je F<0, sila i pomak od točke x_0 = 2 do točke x_1 = 1 jednako su orijentirani, pa je rad pozitivan. Ako je pak sila orijentirana suprotno od pomaka (primjerice, ako je pomak od x_1 = 1 do x_0 = 2), rad je negativan (kažemo da se sila odupire pomaku):
|
Ako nema pomaka, rad je jednak nuli:
|
Beskonačnosti dohvatljive i nedohvatljive
|
![]() |
... ali:
|
Međutim,
![]() |
Traceback (click to the left of this block for traceback) ... ValueError: Integral is divergent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_59.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKC0xL3gsICh4LCAwLCAxKSk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpoPtex9/___code___.py", line 3, in <module> exec compile(u'integral (-_sage_const_1 /x, (x, _sage_const_0 , _sage_const_1 )) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 820, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 487, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6848) File "sage/symbolic/function.pyx", line 1086, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:13207) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 180, in _eval_ return integrator(*args) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 34, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 811, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent. |
|
Traceback (click to the left of this block for traceback) ... ValueError: Integral is divergent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_61.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKC0xL3gsICh4LCAxLCBvbykp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpncHEjP/___code___.py", line 3, in <module> exec compile(u'integral (-_sage_const_1 /x, (x, _sage_const_1 , oo)) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 820, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 487, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6848) File "sage/symbolic/function.pyx", line 1086, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:13207) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 180, in _eval_ return integrator(*args) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 34, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 811, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent. |
![]() |
|
![]() |
|
Traceback (click to the left of this block for traceback) ... ValueError: Integral is divergent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_66.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKC0xL3heMiwgKHgsIDAsIDEpKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmp2O86lw/___code___.py", line 3, in <module> exec compile(u'integral (-_sage_const_1 /x**_sage_const_2 , (x, _sage_const_0 , _sage_const_1 )) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 820, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 487, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6848) File "sage/symbolic/function.pyx", line 1086, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:13207) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 180, in _eval_ return integrator(*args) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 34, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 811, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent. |
Numerička integracija
Postoje funkcije integrali kojih se ne mogu točno izračunati (ili ih barem SageMath ne zna izračunati), iako je lako vidjeti da ploštine ispod njihovih grafova postoje; primjerice:
|
![]() |
Takve se funkcije mogu integrirati numerički:
|
|
Naravno, numerički se mogu integrirati i funkcije čiji su točni integrali poznati:
|
|
|
Pri numeričkoj integraciji treba biti oprezan:
|
|
Neodređeni integrali
Obrnuti problem tangente: iz nagiba tangenata krivulje treba odrediti tu krivulju
|
Funkcijom f zadano je polje smjerova ili polje nagibâ:
![]() |
|
|
![]() |
Za razliku od određenoga integrala, koji je broj, neodređeni integral F = \displaystyle\int\!f(x)\,dx je funkcija. Primitivna funkcija ili neodređeni integral funkcije f je funkcija F čija je derivacija funkcija f: F' = f.
|
|
![]() |
Ako je F primitivna funkcija funkcije f, onda su njezine primitivne funkcije i sve funkcije F + C, gdje je C bilo koja konstanta. I, s druge strane, sve primitivne funkcije funkcije f oblika su F + C.
|
|
|
![]() |
|
|
![]() |
Divergentnost određenoga integrala (za neke granice) ne znači da se integral ne može simbolički riješiti:
Traceback (click to the left of this block for traceback) ... ValueError: Integral is divergent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_117.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKC0xL3gsIHgsIDAsIDEp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpwrvXvq/___code___.py", line 3, in <module> exec compile(u'integral (-_sage_const_1 /x, x, _sage_const_0 , _sage_const_1 ) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 820, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 487, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6848) File "sage/symbolic/function.pyx", line 1086, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:13207) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 180, in _eval_ return integrator(*args) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 34, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 811, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent. |
|
![]() |
Jedna primjena u mehanici
Newtonova je kinematička inačica obrnutoga problema tangente: „Ako je zadana brzina gibanja u kojigod vremenski čas, naći duljinu puta opisana u određenu vremenu”. Pri slobodnomu je padu, primjerice:
|
|
Veza određenoga integrala i primitivne funkcije (Newton–Leibnizova formula)
Ako je F primitivna funkcija funkcije f, onda je
\displaystyle \int_a^b f(x)\,dx \:=\: F(b) - F(a).
|
|
|
|
|
Traceback (click to the left of this block for traceback) ... ValueError: Integral is divergent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_130.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKC0xL3gsIHgsIDAsIDEp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpAuFAKc/___code___.py", line 3, in <module> exec compile(u'integral (-_sage_const_1 /x, x, _sage_const_0 , _sage_const_1 ) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 820, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 487, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6848) File "sage/symbolic/function.pyx", line 1086, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:13207) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 180, in _eval_ return integrator(*args) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 34, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 811, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent. |
|
Traceback (click to the left of this block for traceback) ... ValueError: Integral is divergent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_131.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKC0xL3gsIHgsIDEsIG9vKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpox7wxd/___code___.py", line 3, in <module> exec compile(u'integral (-_sage_const_1 /x, x, _sage_const_1 , oo) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 820, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 487, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6848) File "sage/symbolic/function.pyx", line 1086, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:13207) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 180, in _eval_ return integrator(*args) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 34, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 811, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent. |
|
|
Primjena pretpostavaka
Traceback (click to the left of this block for traceback) ... Is n equal to -1? Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_134.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("dmFyICgnbicpCmludGVncmFsICh4Xm4sIHgp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpfE8eHx/___code___.py", line 3, in <module> exec compile(u'integral (x**n, x) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 818, in integrate return indefinite_integral(expression, v, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 492, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6949) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 90, in _eval_ return integrator(f, x) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 32, in maxima_integrator result = maxima.sr_integral(expression,v) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 813, in sr_integral self._missing_assumption(s) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 1049, in _missing_assumption raise ValueError(outstr) ValueError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(n>0)', see `assume?` for more details) Is n equal to -1? |
|
|
|
|
|
Još jedan primjer:
|
Traceback (click to the left of this block for traceback) ... Is a positive or negative? Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_141.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKGYoeCksIHgp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpgaIhNJ/___code___.py", line 2, in <module> exec compile(u'integral (f(x), x) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py", line 753, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 12366, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:69760) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 818, in integrate return indefinite_integral(expression, v, hold=hold) File "sage/symbolic/function.pyx", line 998, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:11922) File "sage/symbolic/function.pyx", line 492, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6949) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 90, in _eval_ return integrator(f, x) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 32, in maxima_integrator result = maxima.sr_integral(expression,v) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 813, in sr_integral self._missing_assumption(s) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 1049, in _missing_assumption raise ValueError(outstr) ValueError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(a>0)', see `assume?` for more details) Is a positive or negative? |
|
|
|
|
|
Traceback (click to the left of this block for traceback) ... TypeError: ECL says: Error executing code in Maxima: expt: undefined: 0 to a negative exponent. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_152.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("Xy5zaW1wbGlmeV9mdWxsKCk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpzLow5W/___code___.py", line 2, in <module> exec compile(u'_.simplify_full() File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 9926, in sage.symbolic.expression.Expression.simplify_full (build/cythonized/sage/symbolic/expression.cpp:54830) File "sage/symbolic/expression.pyx", line 10074, in sage.symbolic.expression.Expression.simplify_rectform (build/cythonized/sage/symbolic/expression.cpp:56767) File "sage/symbolic/expression.pyx", line 9758, in sage.symbolic.expression.Expression.rectform (build/cythonized/sage/symbolic/expression.cpp:54307) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/maxima_wrapper.py", line 32, in __call__ **kwds).sage() File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 655, in __call__ return self._obj.parent().function_call(self._name, [self._obj] + list(args), kwds) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 576, in function_call return self.new(s) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 345, in new return self(code) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 280, in __call__ return cls(self, x, name=name) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 695, in __init__ raise TypeError(x) TypeError: ECL says: Error executing code in Maxima: expt: undefined: 0 to a negative exponent. |
Traceback (click to the left of this block for traceback) ... ValueError: power::eval(): division by zero Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_153.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aW50ZWdyYWwgKGYoeCksIHgpLnN1YnMgKGEgPSAwKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpf0lKr8/___code___.py", line 3, in <module> exec compile(u'integral (f(x), x).subs (a = _sage_const_0 ) File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 5299, in sage.symbolic.expression.Expression.substitute (build/cythonized/sage/symbolic/expression.cpp:32803) ValueError: power::eval(): division by zero |
|
Uvod u diferencijalne jednadžbe
Diferencijalna jednadžba je jednadžba kojom je zadana veza između neovisnih varijabli, tražene funkcije tih varijabli i njezinih derivacija po tim varijablama. Obična diferencijalna jednažba sadrži funkciju jedne varijable, njezine derivacije i tu varijabla. Najviša derivacija, koja se u diferencijalnoj jednadžbi pojavljuje, određuje njezin red.
Prigušene oscilacije (problem s početnim uvjetima)
Uteg mase m, koji visi na elastičnoj opruzi, povući ćemo prema dolje iz početnoga (ravnotežnog) položaja z = 0 u položaj z = z_0. Radi promjene oblika javlja se u zavojnici elastična sila \vec{F}_{\mathrm{e}} = F_{\mathrm{e}}\,\vec{k} koja je teži vratiti u početni oblik (ta je sila po intenzitetu jednaka sili kojom smo povukli uteg, ali je od nje suprotno orijentirana).
Iskustvo je pokazalo da je pri malim produljenjima i skraćenjima opruge ta sila harmonijska, što znači da joj je veličina razmjerna promjeni duljine opruge (riječ je o Hookeovu zakonu s kojim ćete se često susretati). Budući da se sila odupire promjeni duljine, bit će F_{\mathrm{e}} = -E\, z, gdje je E>0 faktor proporcionalnosti. Ako pustimo uteg, počet će se pod djelovanjem sile \vec{F}_{\mathrm{e}} gibati po vertikalnom pravcu. Zrak kroz koji se uteg giba i unutarnje trenje u oprugi pružaju otpor gibanju — prigušuju ga. Sila viskoznoga prigušenja proporcionalna je brzini gibanja: \vec{F}_{\mathrm{v}} = F_{\mathrm{v}}\,\vec{k} = -c\, v\,\vec{k}.
Gibanje će biti opisano funkcijom z : t \mapsto z(t). Budući da je z funkcija vremena t, funkcije vremena bit će i vrijednosti F_{\mathrm{e}} i F_{\mathrm{v}} sila \vec{F}_{\mathrm{e}} i \vec{F}_{\mathrm{v}}. Prema drugom je Newtonovu zakonu
m\,a(t) = F_{\mathrm{v}}(t) + F_{\mathrm{e}}(t), odnosno, m\,a(t) = -c\, v(t) -E\,z(t), odnosno m\,\ddot{z}(t) = -c\,\dot{z}(t) -E\,z(t).
Dobivena diferencijalna jednadžba drugoga je reda.
Definicija diferencijalne jednadžbe:
|
Rješavanje (u nekoliko pokušaja):
Traceback (click to the left of this block for traceback) ... ValueError: Unable to determine independent variable, please specify. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_159.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("enoodCkgPSBkZXNvbHZlIChkZXEsIHop"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpmaBwHG/___code___.py", line 2, in <module> exec compile(u'__tmp__=var("t"); zz = symbolic_expression(desolve (deq, z)).function(t) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/calculus/desolvers.py", line 453, in desolve raise ValueError("Unable to determine independent variable, please specify.") ValueError: Unable to determine independent variable, please specify. |
... ivar — independent variable (neovisna varijabla: z je funkcija neovisne varijable t):
Traceback (click to the left of this block for traceback) ... Is 4*E*m-c^2 positive, negative or zero? Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_160.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("enoodCkgPSBkZXNvbHZlIChkZXEsIHosIGl2YXIgPSB0KQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmp7wcEax/___code___.py", line 2, in <module> exec compile(u'__tmp__=var("t"); zz = symbolic_expression(desolve (deq, z, ivar = t)).function(t) File "", line 1, in <module> File "/opt/SageMath/local/lib/python2.7/site-packages/sage/calculus/desolvers.py", line 467, in desolve soln = P(cmd) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 280, in __call__ return cls(self, x, name=name) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 695, in __init__ raise TypeError(x) TypeError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(4*E*m-c^2>0)', see `assume?` for more details) Is 4*E*m-c^2 positive, negative or zero? |
Priroda rješenja ovisi o tome je li 4\,m\,E > c^2, 4\,m\,E = c^2 ili 4\,m\,E < c^2. U prvom je slučaju gibanje oscilatorno, a u druga dva nije.
Slabo prigušenje:
|
|
Kritično prigušenje:
|
Traceback (click to the left of this block for traceback) ... Is c zero or nonzero? Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_164.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("ejIodCkgPSBkZXNvbHZlIChkZXEsIHosIGl2YXIgPSB0KQp6Mg=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpEjRkgX/___code___.py", line 2, in <module> __tmp__=var("t"); z2 = symbolic_expression(desolve (deq, z, ivar = t)).function(t) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/calculus/desolvers.py", line 467, in desolve soln = P(cmd) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 280, in __call__ return cls(self, x, name=name) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 695, in __init__ raise TypeError(x) TypeError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(c>0)', see `assume?` for more details) Is c zero or nonzero? |
|
|
Jako prigušenje:
|
|
Uvođenje početnih uvjeta z(0) = z_0 i v(0) = \dot{z}(0) = 0:
... ics — initial conditions
Slabo prigušenje:
|
... primjerice, za E = 1, m = 1, c = 0,\!25 i z_0 = -0,\!125 (uteg smo povukli prema dolje) je
|
... pa je gibanje u prve 53 sekunde
![]() |
Kritično prigušenje:
|
... za E = 1, m = 1, c = 2 i z_0 = -0,\!125 je
|
... pa je u prvih 27 sekundi gibanje
![]() |
Jako prigušenje:
|
... za E = 1, m = 1, c = 3 i z_0 = -0,\!125 je
|
![]() |
Ravnoteža užeta (problem s rubnim uvjetima)
Diferencijalna je ravnoteže užeta obješenoga u krajnjim točkama
z''(x) = -\!\dfrac{q(x)}{H},
gdje su q funkcija kojom je zadano vertikalno opterećenje i H intenzitet horizontalne komponente vlačne sile u užetu; povećanjem intenziteta sile u užetu, a time i intenziteta H, smanjuje se provjes užeta. (Tu ćete diferencijalnu jednadžbu izvesti sljedeći semestar, u Mehanici 1.)
Viseći most
Na glavne nosive kabele mosta, razapete preko rijeke, obješena je s pomoću niza jednako razmaknutih vertikalnih kabela vodoravna kolnička konstrukcija. Iako su vertikalni kabeli za nosive kabele spojeni u diskretnim točkama, može se za preliminarni proračun uzeti da su spojevi „razmazani” uzduž nosivih kabela, tako da je i prijenos težine kolničke konstrukcije na nosive kabele „razmazan”. Iako u stvarnosti kabeli nisu bez težine, ona je obično zanemariva u odnosu na težinu kolničke konstrukcije. Ako je ta konstrukcija uzduž cijeloga raspona mosta jednakih poprečnih presjeka, opterećenje će biti jednoliko raspodijeljeno po horizontali, q(x) = q_0, pa je diferencijalna jednadžba ravnoteže
z''(x) = -\!\dfrac{q_0}{H}.
|
|
|
Uvođenje rubnih uvjeta z(x_l) = z_l i z(x_r) = z_r:
|
Rubni uvjeti z(-1) = -1 i z(1) = -1; različiti intenziteti sile H:
|
|
|
![]() |
Rubni uvjeti z(0) = 0 i z(2,5) = -1; različiti intenziteti sile H:
|
|
|
![]() |
Teško uže ... ili lanac
Jedino je opterećenje homogenoga užeta konstantne debljine njegova težina. To je opterećenje jednoliko raspodijeljeno po duljini užeta: q(x) = q_0 \sqrt{1 + \big(z'(x)\big)^2}. Diferencijalna je jednadžba ravnoteže sada
z''(x) = -\!\dfrac{q_0}{H}\sqrt{1 + \big(z'(x)\big)^2}.
Krivulje koje su grafovi njezinih rješenja nazivaju se hiperboličnim lančanicama.
|
|
|
Na žalost, u ovom slučaju SageMath ne zna uvrstiti rubne uvjete, primjerice z(-1) = 0 i z(1) =0:
|
Naime, SageMath ne zna riješiti sustav dviju nelinearnih jednadžbi s nepoznanicama K_1 i K_2:
x |--> _K2 - H*cosh((_K1*q0 + q0*x)/H)/q0 x |--> _K2 - H*cosh((_K1*q0 + q0*x)/H)/q0 |
|
... čak ni ako uvrstimo vrijednosti za q_0 i H:
|
Stoga ćemo sustav riješiti približno, „grafički”, očitavanjem vrijednosti s crteža:
![]() |
![]() |
![]() |
... očitano: K_1 = 0, K_2 \approx 1,\!672
|
|
... pa je rješenje diferencijalne jednadžbe za q_0 = 1 i H = 1,\!25, uz rubne uvjete z(-1) = 0 i z(1) = 0:
|
![]() |
Na sljedećoj su slici—usporedbe radi—prikazani graf rješenja diferencijalne jednadžbe za q_0 = 1 i H = 1,\!25 i rubne uvjete z(-1) = 1 i z(1) = 1 (lančanica) i graf polinoma drugog stupnja koeficijenti kojega su odabrani tako da se njegove vrijednosti podudaraju s vrijednostima rješenja u -1, 0 i 1.
![]() |
|