Řešení rovnic
Předcházející | Kapitola 11. Seznam funkcí GEL | Další

## Řešení rovnic

CubicFormula

      CubicFormula (p)

  Vypočítat kořeny kubického (3. stupně) polynomu pomocí kubické rovnice. Polynom by měl být zadán jako vektor koeficientů. Tj. `4*x^3 + 2*x + 1` odpovídá vektoru `[1,2,0,4]`. Vrací sloupcový vektor tří řešení. První řešení je vždy reálné, protože kubická rovnice má vždy jedno reálné řešení.

  See Planetmath, Mathworld, or Wikipedia for more information.

EulersMethod

      EulersMethod (f,x0,y0,x1,n)

  Použít klasickou Eulerovu metodu k numerickému řešení y'=f(x,y) pro počáteční `x0`, `y0` měnící se do `x1` s přírůstky `n` a vrátit `y` v `x1`. Pokud nechcete výslovně použít Eulerovu metodu, měli byste vážně popřemýšlet o použití RungeKutta k řešení obyčejných diferenciálních rovnic.

  Systémy je možné vyřešit jednoduše tak, že `y` musí být všude (sloupcový) vektor. To znamená, že `y0` může být vektor v případech, kdy by `f` mělo přebírat `x` a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné velikosti.

  See Mathworld or Wikipedia for more information.

EulersMethodFull

      EulersMethodFull (f,x0,y0,x1,n)

  Use classical Euler's method to numerically solve y'=f(x,y) for initial `x0`, `y0` going to `x1` with `n` increments, returns an `n+1` by 2 matrix with the `x` and `y` values. Unless you explicitly want to use Euler's method, you should really think about using RungeKuttaFull for solving ODE. Suitable for plugging into LinePlotDrawLine or LinePlotDrawPoints.

  Příklad:

      genius> LinePlotClear();
      genius> line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);
      genius> LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponenciální vývoj");

  Systémy je možné vyřešit jednoduše tak, že `y` musí být všude (sloupcový) vektor. To znamená, že `y0` může být vektor v případech, kdy by `f` mělo přebírat `x` a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné velikosti.

  Výstup pro systém je nicméně matice n krát 2 s druhou položkou v podobě vektoru. Když si přejete vykreslit čáru, ujistěte se, že používáte řádkové vektory a pak převeďte matici na vektor pomocí ExpandMatrix a vyberte si pravý sloupec. Například:

      genius> LinePlotClear();
      genius> lines = EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);
      genius> lines = ExpandMatrix(lines);
      genius> firstline = lines@(,[1,2]);
      genius> secondline = lines@(,[1,3]);
      genius> LinePlotWindow = [0,10,-2,2];
      genius> LinePlotDrawLine(firstline,"color","blue","legend","První");
      genius> LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Druhý");

  See Mathworld or Wikipedia for more information.

  Verze 1.0.10 a novější.

FindRootBisection

      FindRootBisection (f,a,b,TOL,N)

  Najít kořen funkce pomocí metody bisekce. `a` a `b` je počáteční odhad intervalu, `f(a)` a `f(b)` by měly mít opačná znaménka. `TOL` je požadovaná tolerance a `N` je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor `[uspech,hodnota,iteratce]`, kde `uspech` je pravdivostní hodnota signalizující úspěch, `hodnota` je poslední spočtená hodnota a `iterace` je počet dokončených iterací.

FindRootFalsePosition

      FindRootFalsePosition (f,a,b,TOL,N)

  Najít kořen funkce pomocí metody tětiv. `a` a `b` je počáteční odhad intervalu, `f(a)` a `f(b)` by měly mít opačná znaménka. `TOL` je požadovaná tolerance a `N` je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor `[uspech,hodnota,iteratce]`, kde `uspech` je pravdivostní hodnota signalizující úspěch, `hodnota` je poslední spočtená hodnota a `iterace` je počet dokončených iterací.

FindRootMullersMethod

      FindRootMullersMethod (f,x0,x1,x2,TOL,N)

  Najít kořen funkce pomocí Mullerovy metody. `TOL` je požadovaná tolerance a `N` je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor `[uspech,hodnota,iteratce]`, kde `uspech` je pravdivostní hodnota signalizující úspěch, `hodnota` je poslední spočtená hodnota a `iterace` je počet dokončených iterací.

FindRootSecant

      FindRootSecant (f,a,b,TOL,N)

  Najít kořen funkce pomocí metody sečen. `a` a `b` je počáteční odhad intervalu, `f(a)` a `f(b)` by měly mít opačná znaménka. `TOL` je požadovaná tolerance a `N` je omezení počtu iterací, které mají proběhnout, 0 značí bez omezení. Funkce vrací vektor `[uspech,hodnota,iteratce]`, kde `uspech` je pravdivostní hodnota signalizující úspěch, `hodnota` je poslední spočtená hodnota a `iterace` je počet dokončených iterací.

HalleysMethod

      HalleysMethod (f,df,ddf,odhad,epsilon,maxn)

  Najde nuly pomocí Halleyovy metody. `f` je funkce, `df` je její derivace a `ddf` její druhá derivace. `odhad` je počáteční odhad. Funkce vrací výsledek po dvou úspěšných hodnotách, které každá spadají do `epsilon` nebo po `maxn` pokusech, v kterémžto případě vrací `null`, což značí selhání.

  Viz také `NewtonsMethod` a `SymbolicDerivative`.

  Příklad vyhledání druhé odmocniny z 10:

      genius> HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)

  See Wikipedia for more information.

  Verze 1.0.18 a novější.

NewtonsMethod

      NewtonsMethod (f,df,odhad,epsilon,maxn)

  Najde nuly pomocí metody tečen (Newtonovy metody). `f` je funkce a `df` je její derivace. `odhad` je počáteční odhad. Funkce vrací výsledek po dvou úspěšných hodnotách, které každá spadají do `epsilon` nebo po `maxn` pokusech, v kterémžto případě vrací `null`, což značí selhání.

  Viz také `NewtonsMethodPoly` a `SymbolicDerivative`.

  Příklad vyhledání druhé odmocniny z 10:

      genius> NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)

  See Wikipedia for more information.

  Verze 1.0.18 a novější.

PolynomialRoots

      PolynomialRoots (p)

  Vypočítat kořeny polynomu (1. až 4. stupně) pomocí jedné z rovnic pro takovéto polynomy. Polynom by měl být zadán jako vektor koeficientů. Tj. `4*x^3 + 2*x + 1` odpovídá vektoru `[1,2,0,4]`. Vrací sloupcový vektor řešení.

  Funkce volá QuadraticFormula, CubicFormula a QuarticFormula.

QuadraticFormula

      QuadraticFormula (p)

  Vypočítat kořeny kvadratického (2. stupně) polynomu pomocí kvadratické rovnice. Polynom by měl být zadán jako vektor koeficientů. Tj. `3*x^2 + 2*x + 1` odpovídá vektoru `[1,2,3]`. Vrací sloupcový vektor dvou řešení.

  See Planetmath, or Mathworld, or Wikipedia for more information.

QuarticFormula

      QuarticFormula (p)

  Vypočítat kořeny kvartického (4. stupně) polynomu pomocí kvartické rovnice. Polynom by měl být zadán jako vektor koeficientů. Tj. `5*x^4 + 2*x + 1` odpovídá vektoru `[1,2,0,0,5]`. Vrací sloupcový vektor čtyř řešení.

  See Planetmath, Mathworld, or Wikipedia for more information.

RungeKutta

      RungeKutta (f,x0,y0,x1,n)

  Použít klasickou neadaptivní Rungeho-Kuttovu metodu čtvrtého řádu k numerickému řešení y'=f(x,y) pro počáteční `x0`, `y0` měnící se do `x1` s přírůstky `n`, vrací `y` v `x1`.

  Systémy je možné vyřešit jednoduše tak, že `y` musí být všude (sloupcový) vektor. To znamená, že `y0` může být vektor v případech, kdy by `f` mělo přebírat `x` a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné velikosti.

  See Mathworld or Wikipedia for more information.

RungeKuttaFull

      RungeKuttaFull (f,x0,y0,x1,n)

  Use classical non-adaptive fourth order Runge-Kutta method to numerically solve y'=f(x,y) for initial `x0`, `y0` going to `x1` with `n` increments, returns an `n+1` by 2 matrix with the `x` and `y` values. Suitable for plugging into LinePlotDrawLine or LinePlotDrawPoints.

  Příklad:

      genius> LinePlotClear();
      genius> line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);
      genius> LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponenciální vývoj");

  Systémy je možné vyřešit jednoduše tak, že `y` musí být všude (sloupcový) vektor. To znamená, že `y0` může být vektor v případech, kdy by `f` mělo přebírat `x` a vektor stejné velikosti pro druhý argument a mělo by vracet vektor stejné velikosti.

  Výstup pro systém je nicméně matice n krát 2 s druhou položkou v podobě vektoru. Když si přejete vykreslit čáru, ujistěte se, že používáte řádkové vektory a pak převeďte matici na vektor pomocí ExpandMatrix a vyberte si pravý sloupec. Například:

      genius> LinePlotClear();
      genius> lines = RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);
      genius> lines = ExpandMatrix(lines);
      genius> firstline = lines@(,[1,2]);
      genius> secondline = lines@(,[1,3]);
      genius> LinePlotWindow = [0,10,-2,2];
      genius> LinePlotDrawLine(firstline,"color","blue","legend","První");
      genius> LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Druhý");

  See Mathworld or Wikipedia for more information.

  Verze 1.0.10 a novější.

Předcházející | Nahoru | Další
Funkce | Domů | Statistika