Parametricky zadané funkce | |
Úvodní slovo Autor MAPLESystém MapleZáklady práce Konstrukce Maple Definice funkcí Zjednodušování Řešení rovnic Grafické zpracování Programování MatematikaDiferenciální počet
Křivkový integrál Plošný integrál Knihovnyplotsstudent Student VectorCalculus Knihovnyplotsstudent Student VectorCalculus InformaceDownloadOdkazy Publikace |
Tento odstavec ukáže možnost vytvoření vlastní procedury. Půjde o příkaz, pomocí kterého spočteme derivaci funkcí daných parametricky až do řádu čtyři včetně.
Nejprve uveďme několik vztahů, pomocí kterých se tyto derivace počítají. Z věty o derivaci funkce dané parametricky má funkce f(x) v příslušném intervalu proměnné x derivaci a v odpovídajících si bodech platí . diffpar( [rce1,rce2], prom) - 1.derivace diffpar( [rce1,rce2], prom, prom) - 2. derivace diffpar( [rce1,rce2], prom, prom, prom) - 3. derivace diffpar( [rce1,rce2], prom, prom, prom, prom) - 4.derivace Procedura diffparTato procedura byla z důvodu přehlednosti napsána pomocí základních příkazů programování v systému Maple. Lze ji upravit tak, aby se chovala jako procedura, která je součástí programu. Jde především o typovou kontrolu. Pro pochopení je však nutné přečíst přílohu Programování - jazyk MPJ .> diffpar:=proc(rce,prom) local vysl,x,y,dx,dy,dxx,dyy,dxxx,dyyy,dxxxx,dyyyy; if is(type(rce,'list')) and (nops(rce)=2) then # spravny parametr else return `Chyba - nespravny pocet rovnic`; end if; x:=rce[1]; # získání zadaných rovnic y:=rce[2]; dx:=diff(x,prom); # výpočet derivace dy:=diff(y,prom); if nargs=2 then lprint(`1.derivace`); vysl:=dy/dx ; elif nargs=3 then lprint(`2.derivace`); dxx:=diff(dx,prom); dyy:=diff(dy,prom); vysl:=simplify((dyy*dx-dxx*dy)/(dx)^3); elif nargs=4 then lprint(`3.derivace`); dxx:=diff(dx,prom); dyy:=diff(dy,prom); dxxx:=diff(dxx,prom); dyyy:=diff(dyy,prom); vysl:=simplify((dx^2*dyyy-dx*dy* dxxx-3*dx*dxx*dyy+3*dxx^2*dy)/(dx^5)); elif nargs=5 then lprint(`4.derivace`); dxx:=diff(dx,prom); dyy:=diff(dy,prom); dxxx:=diff(dxx,prom); dyyy:=diff(dyy,prom); dxxxx:=diff(dxxx,prom); dyyyy:=diff(dyyy,prom); vysl:=simplify(1/dx^5*(-6*dx^2*dxx*dyyy+ dx^3*dyyyy-4*dx^2*dyy*dxxx- dx^2*dy*dxxxx+10*dx*dxx*dxxx*dy+ 15*dx*dxx^2*dyy-15*dxx^3*dy)); elif nargs>5 then return `Tato procedura pocita max. 4.derivaci`; end if; return vysl; end proc: Ukázka použití
> diffpar([ln(t),1/(1-t)],t); `1.derivace`
> diffpar([ln(t),1/(1-t),0],t);
> diffpar([ln(t),1/(1-t)],t,t); `2.derivace`
> diffpar([ln(t),1/(1-t)],t,t,t); `3.derivace`
> diffpar([ln(t),1/(1-t)],t$4); `4.derivace`
> diffpar([ln(t),1/(1-t)],t,t,t,t,t);
|
Ing. Vladimír Žák |