Výpočetní technika II - Algoritmizace v systému MATLAB Aktualizace: 31. prosince 2000


Navigační menu
  Vysvětlivky
  Obsah
  Kapitola 1: Matlab
       Kapitola 1.1: Úvod
       Kapitola 1.2: Režimy práce
  Kapitola 2: Skaláry, vektory, matice
       Kapitola 2.1: Operace
       Kapitola 2.2: Funkce
       Kapitola 2.3: Submatice
  Kapitola 3: Vytváření funkcí
  Kapitola 4: Větvení a rozhodování
  Kapitola 5: While cyklus
  Kapitola 6: For cyklus
  Kapitola 7: Objekty a 2-D grafika
  Kapitola 8: 3-D grafika
  Kapitola 9: Datové soubory
       Kapitola 9.1: Ukládání do souboru
       Kapitola 9.2: Načtení ze souboru
       Kapitola 9.3: Import dat z Excelu
  Kapitola 10: Symbolická matematika
  Kapitola 11: Řešení rovnice f(x)=0
  Kapitola 12: Soustavy lineárních rovnic
  Kapitola 13: Minimum funkce f(x)
  10. Toolbox symbolické matematiky  

 
  • Kdo se chce seznámit s toolboxem dopodrobna, stačí, aby napsal příkaz help symbolic a nejde popis všech funkcí a demo programů
  • Toolbox slouží jako nástroj pro obecné výpočty (derivace, primitivní fce, řešení diferenciálních rovnic etc.)
  • K práci je nutno zavést si nejprve symbolické proměnné, buď příkazem sym('prom') nebo syms prom1 prom2
  • Pak je možno pracovat dále
  • Derivace se vypočte příkazem diff, integrál int, řešení rovnice pomocí příkazu solve či dsolve (v případě diferenciální rovnice). Argumenty příkazů se uzavírají mezi apostrofy
  • Výsledek symbolického výpočtu je možno převést do proměnných výpočetního prostředí MATLABu pomocí příkazu double(symbol_prom)
  • Pro diferenciální funkce se pro jednotlivé derivace (např. dy/dx) používá značení velké D, vyšší pak D2 atd.
  • Pokud se zdá výsledek příliš složitý, je možno požádat o jeho zjednodušení příkazem simple(prom)
  • Pokud se zdá výsledek příliš "ošklivý", je možno požádat o jeho úpravu příkazem pretty(prom)
 

  Příklad 10A.1:  
  Řešte rovnici x2+5x+6=0  
  Řešení:  
 
clear all, syms x
xx=solve('x^2+5*x+6=0')
% variantni zapis je také xx=solve(x^2+5*x+6)
double(xx)
 
 
  Příklad 10A.2:  
  Řešte soustavu rovnic:
     x2+xy+y=3
     x2-4x+3=0
 
  Řešení:  
 
clear all
syms x y
[x,y] = solve('x^2+x*y+y=3','x^2-4*x+3=0')
 
 
  Příklad 10A.3:  
  Řešte diferenciální rovnici y’=-5x.
Řešte tutéž rovnici s počáteční podmínkou y(0)=1.
 
  Řešení:  
 
clear all, syms y
y = dsolve('Dy = -5*y'), pause
y = dsolve('Dy = -5*y', 'y(0)=1')
 
 
  Příklad 10A.4:  
  Vypočtěte derivaci funkce (5x5ex)/250  
  Řešení:  
 
clear all, syms x, x=diff('5*exp(x)/250*x^5'); simple(x)
 
 
  Příklad 10A.5:  
  Řešte nelineární diferenciální rovnici (y'')2+y2=1, y(0)=0  
  Řešení:  
 
clear all, syms y, y = dsolve('(Dy)^2+y^2=1','y(0)=0')
 
 
  Příklad 10A.6:  
  Řešte diferenciální rovnici 2. řádu y''=-5y, y(0)=1, y'(/5)=0  
  Řešení:  
 
clear all
syms y, y = dsolve('D2y=-5^2*y', 'y(0)=1, Dy(pi/5)=0')
 
 
  Příklady pro samostatné vypracování  
  Příklad 10B.1:  
  Řešte rovnice:  
 
x2-3x+2=0
x5-3x+2=0
x2-2=0
x5-1=0
x3-1=0
2x3+10=0
ex-cos(x+5)=0
ex+sin(3x-7)=0
 
 
  Příklad 10B.2:  
  Řešte diferenciální rovnice:  
 
y'=2x sqrt(1-x2) a) x=1, y=2
b) x=sqrt(), y=0
c) x=-6, y=1
y'=-x (1+2y)/(1+x2) a) x=0, y=0
b) x=1, y=-0.25
c) x=1, y=0.5
d) x=-1, y=-1
y'=cotg(x) (y+1) a) x=/4, y=0
b) x=7/6, y=-2
y'''=[(y'')3-y'']/x a) x=-1, y=-, y'= , y''=-2/sqrt(3)
b) x=1, y=1, y'=1, y''=-1
 
 
  Seznam použitých příkazů  
  sym, syms, diff, int, solve, dsolve, double, D, simple, pretty  



© 2000 by Darina Bártová, Jaromír Kukal, Martin Pánek

Testováno v prohlížečích MSIE 5.x a NN 4.x při rozlišení 1024x768x256