TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií
MATLB: pˇredn´ aˇska 4 Numerick´e a analytick´e v´ypoˇcty Zbynˇ ek Koldovsk´ y
Projekt ESF CZ.1.07/2.2.00/28.0050 Modernizace didaktick´ ych metod a inovace v´ yuky technick´ ych pˇredmˇ et˚ u.
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ ast I C´ Numerick´e vyhodnocov´an´ı v´yraz˚ u
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet sum Suma - zkr´acen´y z´apis souˇctu n X
ai = a1 + a2 + · · · + an
i=1
Numerick´y v´ypoˇcet prov´ad´ıme v Matlabu vektorizac´ı v´yrazu a pˇr´ıkazem sum Pˇr´ıklad: pro x = 5 a n = 10 vypoˇctˇete sumu n X i=1
(−1)i
xi i2
>> sum((-5).^(1:10)./(1:10).^2) ans = 7.8388e+004 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet sum Suma - zkr´acen´y z´apis souˇctu n X
ai = a1 + a2 + · · · + an
i=1
Numerick´y v´ypoˇcet prov´ad´ıme v Matlabu vektorizac´ı v´yrazu a pˇr´ıkazem sum Pˇr´ıklad: pro x = 5 a n = 10 vypoˇctˇete sumu n X i=1
(−1)i
xi i2
>> sum((-5).^(1:10)./(1:10).^2) ans = 7.8388e+004 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet sum Suma - zkr´acen´y z´apis souˇctu n X
ai = a1 + a2 + · · · + an
i=1
Numerick´y v´ypoˇcet prov´ad´ıme v Matlabu vektorizac´ı v´yrazu a pˇr´ıkazem sum Pˇr´ıklad: pro x = 5 a n = 10 vypoˇctˇete sumu n X i=1
(−1)i
xi i2
>> sum((-5).^(1:10)./(1:10).^2) ans = 7.8388e+004 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet produkt˚ u Produkt - zkr´acen´y z´apis souˇcinu n Y
ai = a1 · a2 · . . . an
i=1
Numerick´y v´ypoˇcet prov´ad´ıme v Matlabu vektorizac´ı v´yrazu a pˇr´ıkazem prod Pˇr´ıklad: pro x = 1.4 a n = 8 vypoˇctˇete produkt n Y
sin
i=1
πx i
>> prod(sin(pi*1.4./(1:8))) ans = -0.1080 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet produkt˚ u Produkt - zkr´acen´y z´apis souˇcinu n Y
ai = a1 · a2 · . . . an
i=1
Numerick´y v´ypoˇcet prov´ad´ıme v Matlabu vektorizac´ı v´yrazu a pˇr´ıkazem prod Pˇr´ıklad: pro x = 1.4 a n = 8 vypoˇctˇete produkt n Y
sin
i=1
πx i
>> prod(sin(pi*1.4./(1:8))) ans = -0.1080 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet produkt˚ u Produkt - zkr´acen´y z´apis souˇcinu n Y
ai = a1 · a2 · . . . an
i=1
Numerick´y v´ypoˇcet prov´ad´ıme v Matlabu vektorizac´ı v´yrazu a pˇr´ıkazem prod Pˇr´ıklad: pro x = 1.4 a n = 8 vypoˇctˇete produkt n Y
sin
i=1
πx i
>> prod(sin(pi*1.4./(1:8))) ans = -0.1080 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet integr´alu Numerick´y v´ypoˇcet integr´alu je pouze pˇribliˇzn´y Z b X f (x)dx ≈ f (xi )∆x a
i
Aproximace integr´alu: napˇr. obd´eln´ıkov´a metoda Z b N−1 X 1 b−a f (x)dx ≈ f a + (i + )∆x ∆x N= 2 ∆x a i=0
Pˇr´ıklad: Z
1
0
1 dx 1 + x2
>> krok=0.01; >> rozdeleni=0:krok:1-krok; >> sum(1./(1+(rozdeleni+krok/2).^2)*krok) ans = 0.7854 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet integr´alu Numerick´y v´ypoˇcet integr´alu je pouze pˇribliˇzn´y Z b X f (x)dx ≈ f (xi )∆x a
i
Aproximace integr´alu: napˇr. obd´eln´ıkov´a metoda Z b N−1 X 1 b−a f (x)dx ≈ f a + (i + )∆x ∆x N= 2 ∆x a i=0
Pˇr´ıklad: Z
1
0
1 dx 1 + x2
>> krok=0.01; >> rozdeleni=0:krok:1-krok; >> sum(1./(1+(rozdeleni+krok/2).^2)*krok) ans = 0.7854 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Numerick´y v´ypoˇcet integr´alu Numerick´y v´ypoˇcet integr´alu je pouze pˇribliˇzn´y Z b X f (x)dx ≈ f (xi )∆x a
i
Aproximace integr´alu: napˇr. obd´eln´ıkov´a metoda Z b N−1 X 1 b−a f (x)dx ≈ f a + (i + )∆x ∆x N= 2 ∆x a i=0
Pˇr´ıklad: Z
1
0
1 dx 1 + x2
>> krok=0.01; >> rozdeleni=0:krok:1-krok; >> sum(1./(1+(rozdeleni+krok/2).^2)*krok) ans = 0.7854 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: soustava line´arn´ıch rovnic Pˇr´ıklad soustavy pro 3 nezn´am´e s parametrem α 3ξ1 + 9ξ2 − 7ξ3 = 9 3ξ1 + α2 ξ2 − 7ξ3 = 6 αξ1 + 9ξ2 − 7ξ3 = 1 ˇ sen´ı pro α = 4 Reˇ >> A=[3 9 -7; 3 16 -7; 4 9 -7]; >> b=[9 6 1]’; >> inv(A)*b % t´ eˇ z A\b
Pro α = 3 ˇreˇsen´ı evidentnˇe neexistuje >> A=[3 9 -7; 3 9 -7; 3 9 -7]; >> A\b Warning: Matrix is singular to working precision. ans = NaN NaN -Inf Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: soustava line´arn´ıch rovnic Pˇr´ıklad soustavy pro 3 nezn´am´e s parametrem α 3ξ1 + 9ξ2 − 7ξ3 = 9 3ξ1 + α2 ξ2 − 7ξ3 = 6 αξ1 + 9ξ2 − 7ξ3 = 1 ˇ sen´ı pro α = 4 Reˇ >> A=[3 9 -7; 3 16 -7; 4 9 -7]; >> b=[9 6 1]’; >> inv(A)*b % t´ eˇ z A\b
Pro α = 3 ˇreˇsen´ı evidentnˇe neexistuje >> A=[3 9 -7; 3 9 -7; 3 9 -7]; >> A\b Warning: Matrix is singular to working precision. ans = NaN NaN -Inf Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: soustava line´arn´ıch rovnic Pˇr´ıklad soustavy pro 3 nezn´am´e s parametrem α 3ξ1 + 9ξ2 − 7ξ3 = 9 3ξ1 + α2 ξ2 − 7ξ3 = 6 αξ1 + 9ξ2 − 7ξ3 = 1 ˇ sen´ı pro α = 4 Reˇ >> A=[3 9 -7; 3 16 -7; 4 9 -7]; >> b=[9 6 1]’; >> inv(A)*b % t´ eˇ z A\b
Pro α = 3 ˇreˇsen´ı evidentnˇe neexistuje >> A=[3 9 -7; 3 9 -7; 3 9 -7]; >> A\b Warning: Matrix is singular to working precision. ans = NaN NaN -Inf Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: vlastn´ı ˇc´ısla a vektory (1)
Je-li λ vlastn´ı ˇc´ıslo matice A a x je pˇr´ısluˇsn´y vlastn´ı vektor, pak Ax = λx ⇔ (A − λI)x = 0 takˇze A − λI je singul´arn´ı, tedy det(A − λI) = 0 Pˇr´ıklad
1 −3 5 A = −3 −9 −4 5 −4 2
Vlastn´ı ˇc´ısla a vektory >> [V D]=eig(A);
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: vlastn´ı ˇc´ısla a vektory (1)
Je-li λ vlastn´ı ˇc´ıslo matice A a x je pˇr´ısluˇsn´y vlastn´ı vektor, pak Ax = λx ⇔ (A − λI)x = 0 takˇze A − λI je singul´arn´ı, tedy det(A − λI) = 0 Pˇr´ıklad
1 −3 5 A = −3 −9 −4 5 −4 2
Vlastn´ı ˇc´ısla a vektory >> [V D]=eig(A);
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: vlastn´ı ˇc´ısla a vektory (1)
Je-li λ vlastn´ı ˇc´ıslo matice A a x je pˇr´ısluˇsn´y vlastn´ı vektor, pak Ax = λx ⇔ (A − λI)x = 0 takˇze A − λI je singul´arn´ı, tedy det(A − λI) = 0 Pˇr´ıklad
1 −3 5 A = −3 −9 −4 5 −4 2
Vlastn´ı ˇc´ısla a vektory >> [V D]=eig(A);
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: vlastn´ı ˇc´ısla a vektory (2) Jelikoˇz Ax = λx, mus´ı platit, ˇze AV = VD. Souˇcin vlastn´ıch ˇc´ısel je roven determinantu A. Ovˇeˇren´ı: >> det(A) ans = 293 >> prod(diag(D)) ans = 293.0000
Ovˇeˇren´ı singularity A − λI >> det(A-D(1,1)*eye(3)) ans = -2.6114e-013
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: vlastn´ı ˇc´ısla a vektory (2) Jelikoˇz Ax = λx, mus´ı platit, ˇze AV = VD. Souˇcin vlastn´ıch ˇc´ısel je roven determinantu A. Ovˇeˇren´ı: >> det(A) ans = 293 >> prod(diag(D)) ans = 293.0000
Ovˇeˇren´ı singularity A − λI >> det(A-D(1,1)*eye(3)) ans = -2.6114e-013
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Line´arn´ı algebra: vlastn´ı ˇc´ısla a vektory (2) Jelikoˇz Ax = λx, mus´ı platit, ˇze AV = VD. Souˇcin vlastn´ıch ˇc´ısel je roven determinantu A. Ovˇeˇren´ı: >> det(A) ans = 293 >> prod(diag(D)) ans = 293.0000
Ovˇeˇren´ı singularity A − λI >> det(A-D(1,1)*eye(3)) ans = -2.6114e-013
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Polynomy Pˇr´ıkaz poly vrac´ı koeficienty polynomu se zvolen´ymi koˇreny. Pˇr´ıklad: >> poly([2 3 4]) ans = 1
-9
26
-24
znamen´a, ˇze polynom p(x) = x 3 − 9x 2 + 26x − 24 m´a koˇreny 2, 3 a 4. Koˇreny polynomu p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0 spoˇcteme numericky pomoc´ı pˇr´ıkazu roots. Pˇr´ıklad p(x) = x 3 − 9x 2 + 26x − 24 >> roots([1 -9 26 -24]) ans = 4.0000 3.0000 2.0000 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Polynomy Pˇr´ıkaz poly vrac´ı koeficienty polynomu se zvolen´ymi koˇreny. Pˇr´ıklad: >> poly([2 3 4]) ans = 1
-9
26
-24
znamen´a, ˇze polynom p(x) = x 3 − 9x 2 + 26x − 24 m´a koˇreny 2, 3 a 4. Koˇreny polynomu p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0 spoˇcteme numericky pomoc´ı pˇr´ıkazu roots. Pˇr´ıklad p(x) = x 3 − 9x 2 + 26x − 24 >> roots([1 -9 26 -24]) ans = 4.0000 3.0000 2.0000 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Polynomy Pˇr´ıkaz poly vrac´ı koeficienty polynomu se zvolen´ymi koˇreny. Pˇr´ıklad: >> poly([2 3 4]) ans = 1
-9
26
-24
znamen´a, ˇze polynom p(x) = x 3 − 9x 2 + 26x − 24 m´a koˇreny 2, 3 a 4. Koˇreny polynomu p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0 spoˇcteme numericky pomoc´ı pˇr´ıkazu roots. Pˇr´ıklad p(x) = x 3 − 9x 2 + 26x − 24 >> roots([1 -9 26 -24]) ans = 4.0000 3.0000 2.0000 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Polynomy Pˇr´ıkaz poly vrac´ı koeficienty polynomu se zvolen´ymi koˇreny. Pˇr´ıklad: >> poly([2 3 4]) ans = 1
-9
26
-24
znamen´a, ˇze polynom p(x) = x 3 − 9x 2 + 26x − 24 m´a koˇreny 2, 3 a 4. Koˇreny polynomu p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0 spoˇcteme numericky pomoc´ı pˇr´ıkazu roots. Pˇr´ıklad p(x) = x 3 − 9x 2 + 26x − 24 >> roots([1 -9 26 -24]) ans = 4.0000 3.0000 2.0000 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ ast II C´ Symbolick´e v´ypoˇcty v Matlabu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e v´ypoˇcty v Matlabu
Potˇrebujeme Symbolic Math Toolbox Zaloˇzeno na j´adru (engine) MuPAD (p˚ uvodnˇe Maple) Ovl´adat lze pˇr´ımo pˇres konzoli MuPADu (pˇr´ıkaz mupad) nebo skrze konzoli Matlabu Zamˇeˇr´ıme se na ovl´ad´an´ı z Matlabu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e v´ypoˇcty v Matlabu
Potˇrebujeme Symbolic Math Toolbox Zaloˇzeno na j´adru (engine) MuPAD (p˚ uvodnˇe Maple) Ovl´adat lze pˇr´ımo pˇres konzoli MuPADu (pˇr´ıkaz mupad) nebo skrze konzoli Matlabu Zamˇeˇr´ıme se na ovl´ad´an´ı z Matlabu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e v´ypoˇcty v Matlabu
Potˇrebujeme Symbolic Math Toolbox Zaloˇzeno na j´adru (engine) MuPAD (p˚ uvodnˇe Maple) Ovl´adat lze pˇr´ımo pˇres konzoli MuPADu (pˇr´ıkaz mupad) nebo skrze konzoli Matlabu Zamˇeˇr´ıme se na ovl´ad´an´ı z Matlabu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e v´ypoˇcty v Matlabu
Potˇrebujeme Symbolic Math Toolbox Zaloˇzeno na j´adru (engine) MuPAD (p˚ uvodnˇe Maple) Ovl´adat lze pˇr´ımo pˇres konzoli MuPADu (pˇr´ıkaz mupad) nebo skrze konzoli Matlabu Zamˇeˇr´ıme se na ovl´ad´an´ı z Matlabu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e promˇenn´e
Pˇr´ıkazem syms vytvoˇr´ıme promˇennou typu sym >> syms x y
S promˇenn´ymi pracujeme ”norm´alnˇe”, Matlab pos´ıl´a pˇr´ıkazy automaticky na MuPAD a vypisuje v´ysledek Napˇr. >> (x+y)*(x+y)+x-1
se ve skuteˇcnosti zpracuje v MuPADu. Pˇredpoklady o promˇenn´e napˇr. >> syms x real >> syms y positive
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e promˇenn´e
Pˇr´ıkazem syms vytvoˇr´ıme promˇennou typu sym >> syms x y
S promˇenn´ymi pracujeme ”norm´alnˇe”, Matlab pos´ıl´a pˇr´ıkazy automaticky na MuPAD a vypisuje v´ysledek Napˇr. >> (x+y)*(x+y)+x-1
se ve skuteˇcnosti zpracuje v MuPADu. Pˇredpoklady o promˇenn´e napˇr. >> syms x real >> syms y positive
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e promˇenn´e
Pˇr´ıkazem syms vytvoˇr´ıme promˇennou typu sym >> syms x y
S promˇenn´ymi pracujeme ”norm´alnˇe”, Matlab pos´ıl´a pˇr´ıkazy automaticky na MuPAD a vypisuje v´ysledek Napˇr. >> (x+y)*(x+y)+x-1
se ve skuteˇcnosti zpracuje v MuPADu. Pˇredpoklady o promˇenn´e napˇr. >> syms x real >> syms y positive
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´e promˇenn´e
Pˇr´ıkazem syms vytvoˇr´ıme promˇennou typu sym >> syms x y
S promˇenn´ymi pracujeme ”norm´alnˇe”, Matlab pos´ıl´a pˇr´ıkazy automaticky na MuPAD a vypisuje v´ysledek Napˇr. >> (x+y)*(x+y)+x-1
se ve skuteˇcnosti zpracuje v MuPADu. Pˇredpoklady o promˇenn´e napˇr. >> syms x real >> syms y positive
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´a ˇc´ısla Je tˇreba ch´apat rozd´ıl mezi t´ım, kdy je v´yraz ch´ap´an jako numerick´y a kdy jako symbolick´y. Nen´ı to u ´plnˇe jednoznaˇcn´e, protoˇze existuj´ı vyj´ımky. Napˇr. vytvoˇren´ı symbolick´eho ˇc´ısla 2 >> a=sym(’2’) % jelikoˇ z je parametr ˇ retˇ ezec, nen´ ı nutn´ y % pˇ revod numerick´ e hodnoty na symbolickou >> a=sym(2) % zde k pˇ revodu teoreticky doch´ az´ ı, protoˇ ze % v´ yraz v z´ avorce je numerick´ a dvojka (double) % ve skuteˇ cnosti je to ale vyj´ ımka
Sledujte rozd´ıly >> >> >> >> >>
sym(’sqrt(2)’) sym(sqrt(2)) sym(2^(1/2)) sym(2^(1/3)) % nevznikne symbolick´ a tˇ ret´ ı odmocnina ze 2 sym(’2^(1/3)’) % takto ano Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´a ˇc´ısla Je tˇreba ch´apat rozd´ıl mezi t´ım, kdy je v´yraz ch´ap´an jako numerick´y a kdy jako symbolick´y. Nen´ı to u ´plnˇe jednoznaˇcn´e, protoˇze existuj´ı vyj´ımky. Napˇr. vytvoˇren´ı symbolick´eho ˇc´ısla 2 >> a=sym(’2’) % jelikoˇ z je parametr ˇ retˇ ezec, nen´ ı nutn´ y % pˇ revod numerick´ e hodnoty na symbolickou >> a=sym(2) % zde k pˇ revodu teoreticky doch´ az´ ı, protoˇ ze % v´ yraz v z´ avorce je numerick´ a dvojka (double) % ve skuteˇ cnosti je to ale vyj´ ımka
Sledujte rozd´ıly >> >> >> >> >>
sym(’sqrt(2)’) sym(sqrt(2)) sym(2^(1/2)) sym(2^(1/3)) % nevznikne symbolick´ a tˇ ret´ ı odmocnina ze 2 sym(’2^(1/3)’) % takto ano Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Symbolick´a ˇc´ısla Je tˇreba ch´apat rozd´ıl mezi t´ım, kdy je v´yraz ch´ap´an jako numerick´y a kdy jako symbolick´y. Nen´ı to u ´plnˇe jednoznaˇcn´e, protoˇze existuj´ı vyj´ımky. Napˇr. vytvoˇren´ı symbolick´eho ˇc´ısla 2 >> a=sym(’2’) % jelikoˇ z je parametr ˇ retˇ ezec, nen´ ı nutn´ y % pˇ revod numerick´ e hodnoty na symbolickou >> a=sym(2) % zde k pˇ revodu teoreticky doch´ az´ ı, protoˇ ze % v´ yraz v z´ avorce je numerick´ a dvojka (double) % ve skuteˇ cnosti je to ale vyj´ ımka
Sledujte rozd´ıly >> >> >> >> >>
sym(’sqrt(2)’) sym(sqrt(2)) sym(2^(1/2)) sym(2^(1/3)) % nevznikne symbolick´ a tˇ ret´ ı odmocnina ze 2 sym(’2^(1/3)’) % takto ano Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Zlomky
Pro symbolick´e poˇc´ıt´an´ı zlomk˚ u staˇc´ı, aby jedna z promˇenn´ych byla typu sym. Napˇr >> sym(3)/5+12/15 ans = 7/5
Pomoc´ı pˇr´ıkazu sym lze pˇrev´adˇet numerick´y form´at na racion´aln´ı (symbolick´e) ˇc´ıslo >> sym(log10(5),’r’) ans = 24592820711491/35184372088832
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Zlomky
Pro symbolick´e poˇc´ıt´an´ı zlomk˚ u staˇc´ı, aby jedna z promˇenn´ych byla typu sym. Napˇr >> sym(3)/5+12/15 ans = 7/5
Pomoc´ı pˇr´ıkazu sym lze pˇrev´adˇet numerick´y form´at na racion´aln´ı (symbolick´e) ˇc´ıslo >> sym(log10(5),’r’) ans = 24592820711491/35184372088832
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇrevod symbolick´e veliˇciny na numerickou Pˇr´ıkaz vpa (Variable Precision Arithmetic) >> vpa(’sin(sqrt(2))’,40) ans = 0.9877659459927355270691340720789426559068
Pozor na rozd´ıl: >> vpa(sin(sqrt(2)),40) ans = 0.9877659459927355944941496090905275195837
Pˇr´ıkazem digits nastavujeme standardn´ı pˇresnost >> digits(20)
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇrevod symbolick´e veliˇciny na numerickou Pˇr´ıkaz vpa (Variable Precision Arithmetic) >> vpa(’sin(sqrt(2))’,40) ans = 0.9877659459927355270691340720789426559068
Pozor na rozd´ıl: >> vpa(sin(sqrt(2)),40) ans = 0.9877659459927355944941496090905275195837
Pˇr´ıkazem digits nastavujeme standardn´ı pˇresnost >> digits(20)
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇrevod symbolick´e veliˇciny na numerickou Pˇr´ıkaz vpa (Variable Precision Arithmetic) >> vpa(’sin(sqrt(2))’,40) ans = 0.9877659459927355270691340720789426559068
Pozor na rozd´ıl: >> vpa(sin(sqrt(2)),40) ans = 0.9877659459927355944941496090905275195837
Pˇr´ıkazem digits nastavujeme standardn´ı pˇresnost >> digits(20)
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Matice a vektory
Deklarujeme stejnˇe jako norm´aln´ı matice a vektory >> A=[1 2 3; 4 x 5;-7 8 x] A = [ 1, 2, 3] [ 4, x, 5] [ -7, 8, x]
Pouˇz´ıv´ame standardn´ı operace a pˇr´ıkazy, Matlab vol´a MuPAD. Napˇr. >> det(A) ans = x^2 + 13*x - 14
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Matice a vektory
Deklarujeme stejnˇe jako norm´aln´ı matice a vektory >> A=[1 2 3; 4 x 5;-7 8 x] A = [ 1, 2, 3] [ 4, x, 5] [ -7, 8, x]
Pouˇz´ıv´ame standardn´ı operace a pˇr´ıkazy, Matlab vol´a MuPAD. Napˇr. >> det(A) ans = x^2 + 13*x - 14
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Substituce Dosazov´an´ı a substituce pomoc´ı pˇr´ıkazu subs >> f=x^4+sin(x) f = sin(x) + x^4 >> subs(f,x,2) ans = 16.9093 >> subs(f,x,’2’) ans = sin(2) + 16 >> subs(f,x,x^4) ans = sin(x^4) + x^16
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Zjednoduˇsov´an´ı v´yraz˚ u Multifunkˇcn´ı pˇr´ıkaz simplify >> (x-1)*(x+1) ans = (x - 1)*(x + 1) >> simplify((x-1)*(x+1)) ans = x^2 - 1
Pˇr´ıkazy expand, factor, collect, . . . Pˇr´ıkaz simple hled´a nejkratˇs´ı v´yraz co do poˇctu znak˚ u Pˇr´ıkaz pretty d´av´a form´atovan´y textov´y v´ypis v´yrazu >> pretty((x-1)/(x+1)) x - 1 ----x + 1 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Zjednoduˇsov´an´ı v´yraz˚ u Multifunkˇcn´ı pˇr´ıkaz simplify >> (x-1)*(x+1) ans = (x - 1)*(x + 1) >> simplify((x-1)*(x+1)) ans = x^2 - 1
Pˇr´ıkazy expand, factor, collect, . . . Pˇr´ıkaz simple hled´a nejkratˇs´ı v´yraz co do poˇctu znak˚ u Pˇr´ıkaz pretty d´av´a form´atovan´y textov´y v´ypis v´yrazu >> pretty((x-1)/(x+1)) x - 1 ----x + 1 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Zjednoduˇsov´an´ı v´yraz˚ u Multifunkˇcn´ı pˇr´ıkaz simplify >> (x-1)*(x+1) ans = (x - 1)*(x + 1) >> simplify((x-1)*(x+1)) ans = x^2 - 1
Pˇr´ıkazy expand, factor, collect, . . . Pˇr´ıkaz simple hled´a nejkratˇs´ı v´yraz co do poˇctu znak˚ u Pˇr´ıkaz pretty d´av´a form´atovan´y textov´y v´ypis v´yrazu >> pretty((x-1)/(x+1)) x - 1 ----x + 1 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Zjednoduˇsov´an´ı v´yraz˚ u Multifunkˇcn´ı pˇr´ıkaz simplify >> (x-1)*(x+1) ans = (x - 1)*(x + 1) >> simplify((x-1)*(x+1)) ans = x^2 - 1
Pˇr´ıkazy expand, factor, collect, . . . Pˇr´ıkaz simple hled´a nejkratˇs´ı v´yraz co do poˇctu znak˚ u Pˇr´ıkaz pretty d´av´a form´atovan´y textov´y v´ypis v´yrazu >> pretty((x-1)/(x+1)) x - 1 ----x + 1 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Derivace Derivujeme pomoc´ı pˇr´ıkazu diff Napˇr. prvn´ı parci´aln´ı derivace podle x ∂ (y + x 4 + sin x) = cos x + 4x 3 ∂x >> f=y+x^4+sin(x); >> diff(f,x) ans = cos(x) + 4*x^3
Vyˇsˇs´ı derivace >> diff(f,x,2) % druh´ a parc. derivace podle x ans = 12*x^2 - sin(x) Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Derivace Derivujeme pomoc´ı pˇr´ıkazu diff Napˇr. prvn´ı parci´aln´ı derivace podle x ∂ (y + x 4 + sin x) = cos x + 4x 3 ∂x >> f=y+x^4+sin(x); >> diff(f,x) ans = cos(x) + 4*x^3
Vyˇsˇs´ı derivace >> diff(f,x,2) % druh´ a parc. derivace podle x ans = 12*x^2 - sin(x) Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Derivace Derivujeme pomoc´ı pˇr´ıkazu diff Napˇr. prvn´ı parci´aln´ı derivace podle x ∂ (y + x 4 + sin x) = cos x + 4x 3 ∂x >> f=y+x^4+sin(x); >> diff(f,x) ans = cos(x) + 4*x^3
Vyˇsˇs´ı derivace >> diff(f,x,2) % druh´ a parc. derivace podle x ans = 12*x^2 - sin(x) Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Integr´aly Integrujeme pomoc´ı pˇr´ıkazu int Napˇr. neurˇcit´y integr´al podle x Z y + x 4 + sin(x) dx >> f=y+x^4+sin(x); >> int(f,x) ans = x*y - cos(x) + x^5/5
Urˇcit´y integr´al Z
π
y + x 4 + sin(x) dx
0
>> int(f,x,0,pi) ans = pi*y + pi^5/5 + 2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Integr´aly Integrujeme pomoc´ı pˇr´ıkazu int Napˇr. neurˇcit´y integr´al podle x Z y + x 4 + sin(x) dx >> f=y+x^4+sin(x); >> int(f,x) ans = x*y - cos(x) + x^5/5
Urˇcit´y integr´al Z
π
y + x 4 + sin(x) dx
0
>> int(f,x,0,pi) ans = pi*y + pi^5/5 + 2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Integr´aly Integrujeme pomoc´ı pˇr´ıkazu int Napˇr. neurˇcit´y integr´al podle x Z y + x 4 + sin(x) dx >> f=y+x^4+sin(x); >> int(f,x) ans = x*y - cos(x) + x^5/5
Urˇcit´y integr´al Z
π
y + x 4 + sin(x) dx
0
>> int(f,x,0,pi) ans = pi*y + pi^5/5 + 2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Limity Limity poˇc´ıt´a pˇr´ıkaz limit Napˇr. sin x x→0 x lim
>> limit(sin(x)/x,x,0) ans = 1
Limita v nekoneˇcnu
sin x x→+∞ x lim
>> limit(sin(x)/x,x,+inf) ans = 0 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Limity Limity poˇc´ıt´a pˇr´ıkaz limit Napˇr. sin x x→0 x lim
>> limit(sin(x)/x,x,0) ans = 1
Limita v nekoneˇcnu
sin x x→+∞ x lim
>> limit(sin(x)/x,x,+inf) ans = 0 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Limity Limity poˇc´ıt´a pˇr´ıkaz limit Napˇr. sin x x→0 x lim
>> limit(sin(x)/x,x,0) ans = 1
Limita v nekoneˇcnu
sin x x→+∞ x lim
>> limit(sin(x)/x,x,+inf) ans = 0 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Limity Limity zleva nebo zprava lim
x→0±
x |x|
>> limit(y/abs(y),y,0,’left’) ans = -1 >> limit(y/abs(y),y,0,’right’) ans = 1
Pokud limita neexistuje, v´ysledek je NaN. >> limit(x/abs(x),x,0) ans = NaN Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Limity Limity zleva nebo zprava lim
x→0±
x |x|
>> limit(y/abs(y),y,0,’left’) ans = -1 >> limit(y/abs(y),y,0,’right’) ans = 1
Pokud limita neexistuje, v´ysledek je NaN. >> limit(x/abs(x),x,0) ans = NaN Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ sen´ı algebraick´ych rovnic - pˇr´ıkaz solve Reˇ Pˇr´ıklad ˇreˇsen´ı rovnice x 2 − 1 = 0 >> solve(x^2-1) % prav´ a strana je 0 ans = -1 1
Pˇr´ıklad ˇreˇsen´ı rovnice x 2 − 1 = x >> solve(’x^2-1=x’) % prav´ a strana je x ans = 1/2 - 5^(1/2)/2 5^(1/2)/2 + 1/2 >> solve(x^2-1-x) % alternativnˇ e pˇ reveden´ ım prav´ e strany >> solve(x^2-1=x) % ˇ spatnˇ e - syntakticky ned´ av´ a smysl
ˇ sen´ı ax 2 − 1 = x v promˇenn´e a Reˇ >> solve(a*x^2-1-x,a) ans = (x + 1)/x^2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ sen´ı algebraick´ych rovnic - pˇr´ıkaz solve Reˇ Pˇr´ıklad ˇreˇsen´ı rovnice x 2 − 1 = 0 >> solve(x^2-1) % prav´ a strana je 0 ans = -1 1
Pˇr´ıklad ˇreˇsen´ı rovnice x 2 − 1 = x >> solve(’x^2-1=x’) % prav´ a strana je x ans = 1/2 - 5^(1/2)/2 5^(1/2)/2 + 1/2 >> solve(x^2-1-x) % alternativnˇ e pˇ reveden´ ım prav´ e strany >> solve(x^2-1=x) % ˇ spatnˇ e - syntakticky ned´ av´ a smysl
ˇ sen´ı ax 2 − 1 = x v promˇenn´e a Reˇ >> solve(a*x^2-1-x,a) ans = (x + 1)/x^2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ sen´ı algebraick´ych rovnic - pˇr´ıkaz solve Reˇ Pˇr´ıklad ˇreˇsen´ı rovnice x 2 − 1 = 0 >> solve(x^2-1) % prav´ a strana je 0 ans = -1 1
Pˇr´ıklad ˇreˇsen´ı rovnice x 2 − 1 = x >> solve(’x^2-1=x’) % prav´ a strana je x ans = 1/2 - 5^(1/2)/2 5^(1/2)/2 + 1/2 >> solve(x^2-1-x) % alternativnˇ e pˇ reveden´ ım prav´ e strany >> solve(x^2-1=x) % ˇ spatnˇ e - syntakticky ned´ av´ a smysl
ˇ sen´ı ax 2 − 1 = x v promˇenn´e a Reˇ >> solve(a*x^2-1-x,a) ans = (x + 1)/x^2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ sen´ı soustav algebraick´ych rovnic - pˇr´ıkaz solve Reˇ Pˇr´ıklad ˇreˇsen´ı soustavy x 2 + xy + y =3 x 2 − 4x + 3 =0
>> [x,y] = solve(’x^2 + x*y + y = 3’,’x^2 - 4*x + 3 = 0’) x = 1 3 y = 1 -3/2 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Analytick´y v´ypoˇcet sumy - pˇr´ıkaz symsum Pˇr´ıklad: souˇcet aritmetick´e posloupnosti n X
k=
k=1
n(n + 1) 2
>> symsum(k,1,n) ans = (n*(n + 1))/2
Pˇr´ıklad: souˇcet geometrick´e posloupnosti ( n X n q=1 k q = qn+1 −q q 6= 1 q−1 k=1 >> symsum(q^k,k,1,n) ans = piecewise([q = 1, n], [q <> 1, -(q - q*q^n)/(q - 1)]) Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Analytick´y v´ypoˇcet sumy - pˇr´ıkaz symsum Pˇr´ıklad: souˇcet aritmetick´e posloupnosti n X
k=
k=1
n(n + 1) 2
>> symsum(k,1,n) ans = (n*(n + 1))/2
Pˇr´ıklad: souˇcet geometrick´e posloupnosti ( n X n q=1 k q = qn+1 −q q 6= 1 q−1 k=1 >> symsum(q^k,k,1,n) ans = piecewise([q = 1, n], [q <> 1, -(q - q*q^n)/(q - 1)]) Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Dalˇs´ı
ˇ sen´ı diferenci´aln´ıch rovnic: dsolve Reˇ Taylorovy rozvoje: taylor Automatick´y graf funkce: ezplot Fourierova, Laplaceova a Z-transformace: fourier, laplace, ztrans Speci´aln´ı funkce: Beta, erf, GAMMA, Psi, . . . Export symbolick´ych v´yraz˚ u do programovac´ıch jazyk˚ u nebo LaTeXu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Dalˇs´ı
ˇ sen´ı diferenci´aln´ıch rovnic: dsolve Reˇ Taylorovy rozvoje: taylor Automatick´y graf funkce: ezplot Fourierova, Laplaceova a Z-transformace: fourier, laplace, ztrans Speci´aln´ı funkce: Beta, erf, GAMMA, Psi, . . . Export symbolick´ych v´yraz˚ u do programovac´ıch jazyk˚ u nebo LaTeXu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Dalˇs´ı
ˇ sen´ı diferenci´aln´ıch rovnic: dsolve Reˇ Taylorovy rozvoje: taylor Automatick´y graf funkce: ezplot Fourierova, Laplaceova a Z-transformace: fourier, laplace, ztrans Speci´aln´ı funkce: Beta, erf, GAMMA, Psi, . . . Export symbolick´ych v´yraz˚ u do programovac´ıch jazyk˚ u nebo LaTeXu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Dalˇs´ı
ˇ sen´ı diferenci´aln´ıch rovnic: dsolve Reˇ Taylorovy rozvoje: taylor Automatick´y graf funkce: ezplot Fourierova, Laplaceova a Z-transformace: fourier, laplace, ztrans Speci´aln´ı funkce: Beta, erf, GAMMA, Psi, . . . Export symbolick´ych v´yraz˚ u do programovac´ıch jazyk˚ u nebo LaTeXu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Dalˇs´ı
ˇ sen´ı diferenci´aln´ıch rovnic: dsolve Reˇ Taylorovy rozvoje: taylor Automatick´y graf funkce: ezplot Fourierova, Laplaceova a Z-transformace: fourier, laplace, ztrans Speci´aln´ı funkce: Beta, erf, GAMMA, Psi, . . . Export symbolick´ych v´yraz˚ u do programovac´ıch jazyk˚ u nebo LaTeXu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Dalˇs´ı
ˇ sen´ı diferenci´aln´ıch rovnic: dsolve Reˇ Taylorovy rozvoje: taylor Automatick´y graf funkce: ezplot Fourierova, Laplaceova a Z-transformace: fourier, laplace, ztrans Speci´aln´ı funkce: Beta, erf, GAMMA, Psi, . . . Export symbolick´ych v´yraz˚ u do programovac´ıch jazyk˚ u nebo LaTeXu
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
ˇ ast III C´ Pˇr´ıklady na analytick´e a numerick´e v´ypoˇcty
Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇr´ıklad 1 Spoˇc´ıtejte analyticky n X
k2
k=1
a numericky pro n = 50. Numerick´y v´ysledek ovˇeˇrte dosazen´ım do v´ysledku analytick´eho. >> syms k n >> symsum(k^2,1,n) ans = (n*(2*n + 1)*(n + 1))/6 >> sum((1:50).^2) ans = 42925 >> (50*(2*50+1)*(50+1))/6 ans = 42925 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇr´ıklad 2 Vypoˇctˇete analyticky charakteristick´y polynom matice 1 −3 5 A = −3 −9 −4 5 −4 2 tj. p(x) = det(A − xI), naleznˇete jeho koˇreny pomoc´ı roots a porovnejte s vlastn´ımi ˇc´ısly A vypoˇcten´ymi pˇr´ıkazem eig. >> A=[1 -3 5; -3 -9 -4; 5 -4 2]; >> syms x >> p=det(A-x*eye(3)) p = - x^3 - 6*x^2 + 75*x + 293 >> roots([-1 -6 75 293]) >> eig(A) Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇr´ıklad 3 Pro kter´e hodnoty α nem´a soustava jednoznaˇcn´e ˇreˇsen´ı? 3ξ1 + 9ξ2 + α2 ξ3 + ξ4 = 9 9ξ1 + α2 ξ2 − 7ξ3 − αξ4 = 6 α2 ξ1 − 7ξ2 − 7ξ3 + 8ξ4 = 1 ξ1 − αξ2 + 8ξ3 + α3 ξ4 = 1
>> syms a >> A=[3 9 a^2 1; 9 a^2 -7 -a; a^2 -7 -7 8; 1 -a 8 a^3]; >> det(A) ans =
-a^9 + a^6 - 147*a^5 + 16*a^4 + 550*a^3 - 164*a^2 + 462*a + 6241 >> roots([-1 0 0 1 -147 +16 +550 -164 462 6241]) >> solve(det(A)) % analytick´ y v´ ysledek Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇr´ıklad 4 Ovˇeˇrte, ˇze λ = 2 je vlastn´ı ˇc´ıslo matice 5 2 −3 A = 4 5 −4 6 4 −4 >> syms x >> A=[5 2 -3; 4 5 -4; 6 4 -4]; >> solve(det(A-x*eye(3))) ans = 1 2 3 >> eig(A) % nebo numericky ans = 1.0000 2.0000 3.0000 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Pˇr´ıklad 5 Spoˇc´ıtejte analyticky Z
π 2
sin10 (x)dx
0
a odhadnˇete numericky obd´eln´ıkovou metodou. Numerick´y v´ysledek porovnejte s v´ysledkem analytick´ym. >> syms x >> int(sin(x)^10,0,pi/2) ans = (63*pi)/512 >> krok=0.0001; >> rozdeleni=0:krok:(pi/2-krok); >> sum(sin(rozdeleni+krok/2).^10*krok) ans = 0.3865 Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4
Tento materi´ al vznikl v r´ amci projektu ESF CZ.1.07/2.2.00/28.0050 Modernizace didaktick´ ych metod a inovace v´ yuky technick´ ych pˇredmˇ et˚ u, ˇ kter´ y je spolufinancov´ an Evropsk´ ym soci´ aln´ım fondem a st´ atn´ım rozpoˇ ctem CR. Z. Koldovsk´ y
MATLB: pˇredn´ aˇska 4