52
11.
ešení rovnic
11.1
Jedna rovnice pro jednu neznámou
Mathcad je schopen ešit i velmi složité rovnice, kdy hledaná neznámá je obsažena sou asn v n kolika r zných funkcích apod. ř
č
ě
ě
ů
11.1.1
Funkce root
P ed vlastním ešením je zapot ebí: ř
•
ř
ř
ešenou rovnici p evést do tvaru, kdy na jedné stran je nula. Tak vznikne na druhé stran rovnice vztah f(z), se kterým budeme dále pracovat. ř
Ř
ě
ě
•
Uvést po áte ní odhad neznámé. Pokud má rovnice n kolik ešení, pak záleží na tom, z jaké strany se Mathcad bude ke správné hodnot p ibližovat a pro r zné odhady m žeme dostat jiné, by správné, výsledky. Jestliže nás zajímá ešení v oblasti komplexních ísel, m l by být i zvolený odhad komplexní íslo. ř
č
č
ě
ř
ě
ů
ř
ů
ť
č
ě
č
Rovnici vy ešíme pomocí funkce root(f(z),z), která má v závorce dva argumenty vzájemn odd lené árkou. Na prvním míst je vztah, který vznikl uvedenou úpravou rovnice. Na druhém míst je název hledané neznámé. ř
ě
ě
č
ě
ě
obr. 54
x
10
x
root
1
3. sin( x)
e
x
7, x
x 1 x = 1.249 Na dalším obrázku vidíme, že je možno ešit i rovnici s prom nnými parametry. Hledaná neznámá y je tentokrát v horní mezi integrálu. ř
ě
Nadefinujeme vlastní funkci f, ve které jako argument zvolíme prom nný parametr a do ní p i adíme hodnotu funkce root. Pro požadované parametry a dostáváme potom hodnoty y sekvencí kláves f(a)= . ě
ř
ř
Øešení rovnic
53
obr. 55
y
1 y
f( a )
root
log( x a ) dx, y 0
a
0.2, 0.4.. 1
f( a ) 1.926 1.356 0.864 0.417 0.061
11.1.2
Chybové hlášení „nekonverguje“
Pokud Mathcad nenalezne ešení rovnice, nahlásí: Can´t converge to a solution. Try a different guess value or check that a solution really exists. Co m žeme v takovém p ípad ud lat: ř
ů
ř
ě
•
ě
Doporu ujeme nejprve zm nit po áte ní odhad. Vzhledem k použité metod ešení (metoda se en - regula falsi) se m že stát, že u složit jších funkcí s mnoha lokálními extrémy i nespojitostmi není p i n kterých po áte ních volbách ešení nalezeno. č
ř
ě
č
č
č
ě
ů
ě
ř
č
•
ř
ě
č
č
ešenou funkci m žeme znázornit graficky (viz. kap. 10.1.2) a ov it, zda v bec n jaké reálné ešení existuje. ř
Ř
ů
ě
ů
ř
ě
•
Pokud ani p i r zných zm nách odhadu nedostaneme výsledek, zadáme odhad jako komplexní íslo. ř
ů
ě
č
•
M žeme zvýšit povolenou chybu ešení - viz. konec kapitoly 11. ř
ů
Øešení rovnic
54
11.1.3
Funkce polyroots
Pomocí funkce polyroots(v) m žeme získat naráz všechna ešení rovnice n-tého stupn ve tvaru: vnzn + ...+ v1z + v0 = 0. ř
ů
ě
Nejprve nadefinujeme vektor koeficient v. M že obsahovat i komplexní prvky. Na rozdíl od funkce root nemusíme volit po áte ní odhady ko en . Potom získáme výsledek ve form vektoru sekvencí kláves polyroots(v)=. ů
ů
ř
č
č
ů
ě
Na obr. 56 ešíme rovnici 2x3 + 8x2 - 5 = 0: ř
obr. 56 5
3.83
0
v
polyroots ( v )
8
0.898
=
0.727
2
11.2
Soustavy rovnic
V kapitole 4.2.2 jsme vysv tlili význam jednotlivých typ rovnítka. Na p edchozích stranách jsme použití dvou hlavních typ rovnítka pro vložení (:=) a vypsání (=) hodnoty procvi ili na mnoha p íkladech. ř
ě
ů
ů
ř
č
P i ešení soustav rovnic využijeme podmínkové rovnítko. Získáme ho stiskem ř
ř
tla ítka
(Boolean Equals) v sad pod ikonou
č
ě
11.2.1
.
Pravidla p i vytvá ení soustav
P i psaní soustav rovnic je zapot ebí dodržet n kolik pravidel: ř
ř
ě
•
Uvést po áte ní odhady hledaných prom nných. Pro jejich volbu platí stejná pravidla jako u jedné rovnice (viz. kap. 11.1.1). Pro r zné odhady m žeme op t dostat r zné výsledky (viz. obr. 59 a obr. 60). č
č
ě
ů
ů
ě
ů
•
Za odhady neznámých za íná soustava rovnic klí ovým sl vkem Given (je dáno) a kon í funkcí Find, nebo Minerr. Ob funkce dávají ve v tšin p ípad stejné výsledky. M že se však stát, že první funkce nenajde ešení a druhá ano č
č
ů
ř
č
ě
ě
ř
ů
Øešení rovnic
ě
ů
55
(viz. obr. 61). Argumenty t chto funkcí jsou v obou p ípadech názvy hledaných neznámých odd lené árkou. ř
ě
ě
č
•
Prom nné v soustav nesmí být ve form polí.
•
Mathcad by m l um t ešit 50 nelineárních rovnic pro 50 neznámých.
•
Mezi pravou a levou stranou rovnic musí být podmínkové rovnítko. V soustav mohou být i nerovnice (nikoliv nerovnost ≠).
•
Mezi Given a Find (resp. Minerr) se nesmí objevit žádné pomocné vztahy. Pokud je rovnic mén než neznámých, ohlásí Mathcad: This system of equations has more unknowns than there are equations.
ě
ě
ě
ř
ě
ě
ě
ě
11.2.2
ešení soustav lineárních rovnic
ešme soustavu t í rovnic pro t i neznámé a, b, c: ř
Ř
ř
obr. 57 a 3 Given a
b
4b
3
c
2
7c 4
5a
5b
8c 3
3a
7b
9c 2 0.244
Find( a , b , c )
=
1.467 1.444
Soustavu lineárních rovnic m žeme vy ešit ješt snadn ji, když použijeme b žného matematického postupu s využitím matic a vektor . ř
ů
ě
ě
ě
ů
Koeficienty z levé strany rovnic p epíšeme do tvercové matice (nap . L) a pravé strany rovnic uvedeme ve form vektoru (nap . P). Vektor hledaných neznámých R dostaneme tak, že k matici L vypo teme matici inverzní a tu vynásobíme vektorem P. V následujícím p íkladu budeme takto ešit soustavu rovnic z obr. 57. ř
ř
č
ř
ě
č
ř
ř
Øešení rovnic
56
obr. 58 1 4 7 L
4
5 5 8
P
3 7 9 R
1.
L
3 2
P
0.244 R
1.467
=
1.444 Hledané ešení je tedy: a = - 0,244; b = - 1.467; c = 1.444, což je stejný výsledek jako na obr. 57. ř
Ve verzi Mathcad Professional je pro ešení soustav lineárních rovnic k dispozici funkce lsolve(L,P). ř
11.2.3
Soustavy nelineárních rovnic
Nelineární rovnice mohou mít více ešení. V tom p ípad záleží, jak jsme již uvedli, na p vodním odhadu hodnot. ř
ř
ě
ů
Nap íklad pr nik kružnice a p ímky dává dv ešení.1 Napíšeme rovnici kružnice se st edem v po átku a polom rem 1 a rovnici p ímky, která prochází po átkem pod úhlem 45°. Nyní najdeme jeden z pr se ík : ř
ř
ů
ř
ě
ř
ř
č
ě
č
ů
č
ů
obr. 59 r
1
x
100
polom r kružnice ě
y
odhad neznámých
100
Given
klí ové slovo
x2
rovnice kružnice
č
y2 r 2
rovnice p ímky
y x
ř
0.707
Find ( x , y)
=
Pozor:
x
1
hledaný pr se ík ů
0.707 =
100
y
=
č
100
Abychom byli p esní, n kdy je jen jedno ešení a n kdy žádné. ř
ř
ě
ě
Øešení rovnic
57
Všimn te si, prosím, posledního ádku na p edchozím obrázku. Zde varujeme p ed astou chybou uživatel Mathcadu, která vyplývá z nepochopení významu funkce Find. Find je funkce a nikoliv prom nná. Do neznámých x a y nebyly dosud p i azeny vypo tené hodnoty. Neznámé mají stále hodnotu odhadu! ř
ř
ř
ě
č
ů
ě
ř
ř
č
Pokud bychom cht li s vypo tenými ísly dále pracovat, musíme hodnoty funkce Find vložit do n jaké prom nné, nap . do vektoru s nadefinovanými názvy prvk x, y (nebo a, b - viz. obr. 60 a obr. 61). 2 ě
č
č
ř
ě
ě
ů
Našli jsme ešení, tj. sou adnice pr se íku v I. kvadrantu kružnice. Zm nou odhadu prom nných x a y najdeme ešení pro pr se ík ve III. kvadrantu kružnice. 3 ešení je dopln no grafickým znázorn ním úlohy. Vypo tené sou adnice a, b jsou zobrazeny v grafu tvere kem. ř
ř
ů
č
ě
ř
ě
ů
č
Ř
ř
ě
ě
č
č
č
obr. 60 r
1
x
100
y
jiný odhad
100
Given 2
x
2
y
r
2
soustava rovnic
y x
ř
a
pole neznámých:
b
Find( x , y)
ešení: a = 0.707 b = 0.707
Grafické znázorn ní x( φ ) r . cos ( φ ) y( φ ) r . sin ( φ )
k nakreslení kružnice využijeme parametrický graf (viz. kap. 10.1.2)
primka( t) t r .. r
posloupnost nezávisle prom nných
ě
t ě
1 y( φ ) primka( t )
0
b 1 1
0 x( φ ) , t , a
1
2
Obdobn to bylo i u funkce root - viz. obr. 54. Jiné ešení lze n kdy nalézt, pokud do soustavy p idáme vhodn zvolenou nerovnici podmínku pro hledanou neznámou. ě
3
ř
ř
ě
ě
Øešení rovnic
58
11.2.4
Význam funkce Minerr
Na dalším obrázku si ukážeme význam funkce Minerr pro ešení soustavy rovnic. ř
Použijeme stejnou kružnici jako u p edchozího p íkladu, ale p ímku posuneme tak, že se s kružnicí neprotíná. Soustava rovnic nemá reálné ešení. Použijeme-li funkci Find, ohlásí Mathcad chybu: Can´t find a solution to this system of equations. Try a different guess value or check that a solution really exists. Použijeme-li funkci Minerr, dostaneme ešení znázorn né v následujícím grafu k ížkem - ešení, které „pokud možno spl uje ob rovnice s minimální chybou“. ř
ř
ř
ř
ř
ř
ř
ě
ň
ě
Poznámka: Soustava rovnic má ve skute nosti ešení v oblasti komplexních ísel. Zadáme-li v odhadu neznámých za x, y jakákoliv komplexní ísla, dostaneme i pomocí funkce Find správné ešení: x = 1+0.707i ; y = -1+0.707i. ř
č
č
č
ř
obr. 61 r
1
x
100
y
100
Given x
2
y
2
y x
r
2
nová rovnice p ímky
2
ř
ř
a
pole neznámých:
b
Minerr( x , y)
ešení: a = 0.794 b = 0.794
Grafické znázorn ní x( φ ) r . cos ( φ ) y( φ ) r . sin ( φ ) ě
primka( t) t t r .. r 1
2
2 1 y( φ )
0
primka( t) b
1 2 3 2
1
0 1 x( φ ) , t , a
2
Øešení rovnic
59
11.2.5
Prom nné ve form polí
Nyní si ukážeme, jak obejít zákaz používání prom nných ve form polí v soustavách rovnic. Ud láme to obdobn jako u jedné rovnice v p íkladu na obr. 55.4 ě
ě
ř
ě
ě
Budeme op t ešit p íklad s kružnicí a p ímkou, ale polom r kružnice se bude tentokrát m nit - bude postupn nabývat hodnot 1, 2 a 3. Prom nných parametr by v soustav mohlo být více, všechny bychom uvedli jako argumenty nov nadefinované funkce f : ř
ř
ř
ě
ě
ě
ě
ě
ů
ě
ě
obr. 62
x
100
y
100
Given x2
y 2 r2
y x f( r ) r
4
Find ( x, y ) 1 .. 3
x-ové sou adnice pr se ík ř
ů
č
y-ové sou adnice
ů
ř
f( r ) 0
f( r ) 1
0.707 1.414 2.121
0.707 1.414 2.121
P íklad na obr. 55 jsme mohli ešit i jednodušším zp sobem. Nezavád t vlastní funkci f s prom nným parametrem v argumentu, ale p ímo se ptát na hodnotu funkce root. U funkce root neplatí zákaz použití polí. Tento postup u funkce Find použít nem žeme. ř
ř
ů
ě
ř
ě
ů
Øešení rovnic
60
11.2.6
Chybové hlášení Can´t find a solution ...
Na záv r shr me, jaké máme možnosti v p ípad , že p i použití funkce Find nebylo nalezeno ešení:5 ř
ř
ň
ě
ě
ř
Zm níme po áte ní odhad neznámých. O ekáváme-li komplexních ísel, musí i odhady být ísla komplexní.
•
ě
č
č
ř
č
č
ešení
v oblasti
č
•
P idáme do soustavy rovnic nerovnosti pro vymezení oblasti, ve které hledat neznámé.
•
Použijeme místo funkce Find funkci Minerr. M žeme tak získat ešení p ibližné.
ř
ř
ř
ů
Zavedeme prom nnou TOL a p i adíme do ní v tší íslo než 0.001 (její standardní hodnota). Jedná se o povolenou nep esnost p i hledání ešení numerickými metodami (tj. p i použití funkce root, p i ešení soustav rovnic, ale i ur itých integrál , derivace v daném bod atd.). Zvolíme-li tuto prom nnou velkou, sníží se as ešení na úkor p esnosti. Jestliže má tato prom nná nízkou hodnotu, je ešení sice p esn jší, ale v p ípadech, kdy se k n mu asymptoticky p ibližujeme, se m že zvýšit as výpo tu natolik, že Mathcad ohlásí Can´t converge to a solution... nebo Can´t find a solution... ř
ř
ě
ě
č
ř
ř
ř
ř
ř
ř
č
ů
ě
ř
č
ř
ř
ě
ř
ř
ř
ě
č
5
ě
ě
ů
č
P edpokládáme, že rovnice i nerovnice jsou napsány bezchybn . Chyby v soustav jsou totiž nej ast jší p í inou nenalezeného ešení. V tšinu chyb však Mathcad odhalí a nahlásí: Something is wrong with the solve block used to define this function. ř
č
ř
č
ě
ě
ř
č
ě
Øešení rovnic
ě