2015. június 25., csütörtök

Integráló és deriváló


  1. Analóg integráló és deriváló áramkörök
    1. RC integráló
    2. RC deriváló
    3. Integráló műveleti erősítővel
    4. Deriváló műveleti erősítővel
    5. Példa analóg integrálásra és deriválásra
  2. Numerikus integrálás és deriválás
    1. Integrálás
    2. Deriválás
    3. Példák numerikus integrálásra és deriválásra

      Integráló és deriváló (differenciáló) áramköröket mindenhol használnak, ahol méréseket, analíziseket végeznek elektromos jelekkel. Ezek megépíthetők analóg módon (RC körökkel vagy műveleti erősítőkkel) és szoftveresen (vezérlőkkel). A matematikában területszámításra, térfogatszámításra, ívhosszúság-számításra, súlypontszámításra, nyomás, erő, valószínűség, és sok más hasznos dologra felhasználható.

Az integrálás területszámítás, az x-y koordinátarendszerben meghúzott görbe alatti terület kiszámítása. Legyen egy parabolikus görbe, melynek függvénye: $f(x)=x^2$


Az [1,2] intervallum görbe alatti terület:
\[F(x)=\int_1^2 x^2 \mathrm{d}x=\frac{x^{2+1}}{2+1}+C=\frac{x^3}{3}+C\]

A $C$ a végén az integrálási állandó, mely onnan ered, hogy a konstans deriváltja nulla. Ha deriváljuk a fenti függvényt, akkor:

\[f(x)=\frac{3x^{3-1}}{3}=x^2\]

Az $F(x)$ függvény lehetne akár $\frac{x^3}{3}+2$ vagy $\frac{x^3}{3}+99$, a deriváltja akkor is $x^2$, hiszen a 2 és a 99 deriváltja mind nulla. A görbe alatti terület a következő:
 
\[F(x)=\int_1^2 x^2\mathrm{d}x=F(2)-F(1)=\frac{2^3}{3}+C-\left(\frac{1^3}{3}+C\right)=\frac{7}{3}=2,33 \text{ (pl. } cm^2\text{)}\]

Az alul és felül is korlátolt integráltnál a $C$ mindig kiesik, ezért hanyagolható. 

Ha térfogatot számolunk meghatározható például, hogy mikor mennyi víz lesz egy tartályban és milyen gyorsasággal fog telni.


Ha az áramlás kettesével nő, akkor a vízmennyiség hatványozódik. Például 3 perc után a vízmennyiség:

\[\int_0^3 2x\mathrm{d}x=x^2+C=3^2-0^2=9 \text{ (liter)}\]

Ha a vízmennyiség minden időegységben hatványozódik akkor az áramlás duplázódik. Például 3 perc után az áramlás sebessége:

\[(x^2+C)'=2x=2\cdot 3=6 \text{ (liter/perc)}\]

Ebben az esetben a $C$ azt jelentené, hogy már volt víz a tartályban a mérés előtt. 

A függvény deriváltját differenciálhányadosnak is nevezik. Egy függvény akkor differenciálható, ha egy ponton lineárisként is felírható, azaz nem különbözik a görbe érintő egyenesétől. A derivált azt mutatja meg, hogy mennyire meredek az érintő egyenes.


Ha csak annyi ismert, hogy a vízmennyiség $x^2$-tel nő, akkor 2 percnél a vízáramlás meredeksége 4, és minden percnél egyre meredekebb az érintő egyenes.

Ha a görbe az x tengely alá merül, akkor negatív terület (vagy térfogat) is számolható: 


\[\int_1^3\cos(x)\mathrm{d}x=\sin(3)-\sin(1)=0,141-0,841=-0,7\]

A jelfeldolgozásban nem szoktak negatív végtelentől a pozitív végtelen fele integrálni, hanem ablakoknak nevezett intervallumokon megy végig az algoritmus és összegzi a kiszámolt értékeket.


Analóg Integráló és deriváló áramkörök


Az elektronikában a bemenet egy folyamatosan változó jel, mely hatással van a kondenzátorokra és ellenállásokra. Az integrálót aktív alul-áteresztőnek, a deriválót pedig aktív felül-áteresztőnek vagy differenciálerősítőnek nevezik. Szűrőként folytonos AC jellel, integrálóként/deriválóként pedig diszkrét négyszögjellel használják.


A bemenő feszültség mindkét áramkörnél:
\[U_{be}=U_R+U_C=I\cdot R+\frac{Q}{C}\]

Innen már látszik, hogy a kondenzátor töltése (Q) lesz az, ami bevezeti az integrálás és deriválás fogalmát, mert a kondenzátoron átfolyó áram:

\[I(t)=\frac{dQ(t)}{dt}\Rightarrow Q(t)=\int_0^t i(t)\mathrm{d}t\]

RC integráló

Ha az integráló kör bemenete magas frekvenciájú $\left(\omega >>\frac{1}{RC}\right)$, akkor a kondenzátornak nem lesz elég ideje teljesen feltelni ezért rajta csak kevés feszültség fog esni és a bemenő feszültség túlnyomó része az R ellenálláson lesz mérhető.

\[U_{be}(t)=U_R(t)=I(t)\cdot R\]

\[U_{ki}(t)=U_C(t)=\frac{Q(t)}{C}=\frac{1}{C}\int_0^t i(t)\mathrm{d}t=\frac{1}{C}\int_0^t\frac{U_{be}(t)}{R}\mathrm{d}t=\frac{1}{RC}\int_0^t U_{be}(t)\mathrm{d}t+U_{ki}(0)\]


Alacsony frekvencián a kondenzátor szakadásként viselkedik, ezért a kimenő feszültség egyenlő lesz a bemenettel. Közép frekvencián a kondenzátor ellenállása csökken és elkezd töltődni. Más szóval „elszív” az áramból, és ha a frekvencia nem túl nagy, akkor van ideje teljesen feltelni. Ezután ismét szakadásként viselkedik és a kimenő feszültség maximális. A bemenet lefutó élénél a kondenzátor elkezd kisülni és ha elég lassú a frekvencia, akkor van ideje teljesen lemerülni. Ha a frekvencia túl magas, a kondenzátor nem telik fel teljesen, ezért a kimenet nem éri el a maximális feszültséget. A kimenet ilyenkor a háromszögjelhez hasonlít és minél nagyobb a frekvencia, annál kisebb amplitúdójú lesz. Az $U_{ki}(0)$ az integrációs állandó és a kondenzátor kezdeti töltöttségének felel meg.

RC deriváló

Ha a deriváló kör bemenete alacsony frekvenciájú $\left(\omega <<\frac{1}{RC}\right)$, akkor a kondenzátornak van ideje feltelni egészen a bemeneti feszültségszintig és a bemenő feszültség túlnyomó része rajta lesz mérhető.
 
\[U_{be}(t)=U_C(t)=\frac{Q(t)}{C}\]

\[U_{ki}(t)=U_R(t)=I(t)\cdot R=R\frac{dQ(t)}{dt}=R\frac{d\left(C\cdot U_{be}(t)\right)}{dt}=RC\frac{d}{dt}U_{be}(t)\]


Mikor a kondenzátor teljesen feltelt, az ellenálláson semmi feszültség nem marad. A bemenet lefutó élénél a kondenzátor kisül majd ellentétes irányban telik fel, negatív tüskét eredményezve. A négyszögjel minden élénél a feszültségtüske pozitív és negatív értékek között váltakozik. A tüskék amplitúdója a bemenet amplitúdójával talál, időtartama pedig bemenet frekvenciájától és az áramkör időállandójától $(t=RC)$ függ.

Integráló műveleti erősítővel

Sokkal pontosabb integráló és deriváló köröket lehet alkotni, ha a kondenzátorokat vagy az ellenállásokat a műveleti erősítők visszacsatolásaként használjuk. Ha a műveleti erősítő negatív visszacsatolásában kondenzátor van, akkor integráló áramkört alkot.

Ideális esetben a fenti áramkörben lévő műveleti erősítő bemeneti ellenállása végtelen nagy, bemeneti árama és bemeneti potenciálkülönbsége nulla:

\[I_R=I_C, U_D=0\]

\[\frac{U_{be}}{R}=-C\frac{dU_{ki}}{dt}\]

Átrendezve az egyenletet és integrálva 0-tól t-ig:

\[\int dU_{ki}=-\int\frac{U_{ki}(t)}{RC}\mathrm{d}t\Rightarrow U_{ki}(t)=-\frac{1}{RC}\int_0^t U_{be}(t)\mathrm{d}t+U_{ki}(0)\]

A negatív előjel a 180 fokos eltolását jelenti az invertáló bemenetre kötött jelnek. A frekvenciatartomány meghatározásához a visszacsatolás impedanciáját kell felírni:

\[\frac{U_{ki}}{U_{be}}=-\frac{Z_C}{Z_R}=\frac{\frac{1}{j\omega C}}{R}=\frac{j}{\omega RC}\]

A fenti kifejezés szerint 90 fokos fáziskülönbség lesz a kimenet és bemenet között, frekvenciától függetlenül. Kezdetben a kondenzátor üres és ellenállása kicsi, rövidzárként viselkedik és átenged minden áramot ami az ellenállásról jön. Ilyenkor nem folyik áram a műveleti erősítőbe, hiszen az áram mindig a kisebb ellenállás felé halad. Az x-el jelölt csomópont ekkor virtuális földnek tekinthető (a nem-invertáló bemenettel azonos potenciálon van, mert $U_D=0$), az áramkör feszültségismétlőként viselkedik. Mikor a kondenzátor telni kezd, az ellenállása (impedanciája) is megnő. A kondenzátor az RC időállandótól függő gyorsasággal telik fel. A negatív visszacsatolás miatt a műveleti erősítő igyekszik olyan kimenetet produkálni, ami fenntartja az invertáló bemeneten lévő virtuális földet. Ahogy a kondenzátoron lévő feszültség nő, úgy a rajta átfolyó áram csökken és emiatt a kimenő feszültség lineárisan nőni fog egészen addig, míg a kondenzátor be nem fejezi a töltődést.

Négyszögjel bemenetnél a kimenet tehát háromszögjel lesz, háromszögjel bemenettel pedig szinuszos kimenetet kapunk. Szinuszos bemenő hullám esetén az áramkör alul-áteresztőként viselkedik. Ha a frekvencia túl alacsony, (pl DC bemenet), akkor a kondenzátor szakadásként fog viselkedni elvágva a visszacsatolást a műveleti erősítő bemenetéről. Ettől a műveleti erősítő maximális nyereségű áramkörként (nyílthurkú erősítőként) működik:

\[A=\frac{U_{ki}}{U{be}}=-\frac{R_C}{R}=-\frac{\infty}{R}=-\infty\]

Más szóval a kimenet a negatív tápfeszültségre telítődik. A nyereséget szabályozni lehet, ha a kondenzátorral párhuzamosan kötünk egy ellenállást, így alacsony frekvencián, mikor a kondenzátor ellenállása nagy, a párhuzamos ellenállást felé fog folyni az áram nagy része és az áramkör normális invertáló erősítőként fog viselkedni $\frac{R_p}{R}$ nyereséggel:


Ha a frekvencia növekszik, a kondenzátor lassan söntölni fogja a párhuzamos ellenállást és csökkenti az erősítés mértékét. Ilyenkor az áramkör integrátorként működik.

\[\text{Ha } f_{be}<\frac{1}{2\pi RC}\Rightarrow \text{invertáló}\]

\[\text{Ha } f_{be}>\frac{1}{2\pi RC}\Rightarrow \text{integráló}\]

Ha a frekvencia túlságosan nagy, akkor a kondenzátor zárlatként viselkedik, az áramkör pedig feszültségismétlőként.

\[\text{Ha } f_{be}>>\frac{1}{2\pi RC}\Rightarrow \text{fesz}\ddot{u}\text{ltségismétlő}\]

Az integrálás tehát a visszacsatolási kondenzátor töltésével történik. Hogy az eredmény pontos legyen, a kondenzátornak üresnek kell lennie bekapcsoláskor. Ez úgy érhető el például, ha a kondenzátor sarkait egy kapcsolóval rövidre zárjuk minden bekapcsolás előtt.



Deriváló műveleti erősítővel


Felcserélve az ellenállást a kondenzátorral deriválót kapunk. A kimeneti feszültség egyenesen arányos a bemenő feszültség időbeni változásaival. Minél gyorsabban változik a bemenő feszültség annál nagyobb az áramkörben folyó áramerősség és annál magasabb a kimeneti feszültség. Az áramkört differenciálerősítőnek is nevezik.






Ideális esetben a fenti áramkörben:

\[I_C=I_R, U_D=0\] \[\frac{U_{ki}}{R}=-C\frac{dU_{be}}{dt}\]



Átrendezve az egyenletet:

\[U_{ki}=-RC\frac{dU_{be}}{dt}\]



A bemenet a kondenzátorra kerül, ami kiszűr minden DC komponenst, ezért DC bemenetkor nincs kimenet. AC feszültség esetén, alacsony frekvencián a kondenzátor ellenállása nagy marad, alacsonyan tartva az áramkör erősítését, a kimeneti feszültség egyenlő a bemenetivel (feszültségismétlő). A frekvencia növekedésével kondenzátor ellenállása csökken, az erősítés megnő és az áramkör deriváló tulajdonsága lesz jellemző. A 90 fokos fáziskülönbség a kimenet és bemenet között minden frekvencián fenn áll. Túl nagy frekvencián azonban az áramkör egyre instabilabbá válik és oszcillálni kezd. Ez főként az elsőrendű szűrőhatásnak köszönhető, mely az áramkör frekvenciaválaszát adja meg és egy másodrendű frekvenciaválaszt okoz, melytől a túl magas frekvenciák a vártnál jóval nagyobb feszültségcsúcsokat (zajt) generálnak a kimeneten. Ez kiküszöbölhető az ellenállással párhuzamosan kapcsolt kondenzátorral.


A differenciálerősítő kapacitív bemenetének köszönhetően nagyon érzékeny lesz a zajra vagy harmonikusokra, azaz akár jobban is felerősítheti őket, mint a hasznos jelt. Ha a kondenzátorral sorosan kötünk egy ellenállást, akkor az kicsit növel a nyereségen és javít a zajra való érzékenységen:




A kimenő jelalakok különböző bemenetnél a következők:

Ebben az áramkörben, minél nagyobb a frekvencia, annál inkább vezetni kezd C kondenzátor és az áramkör annál inkább kezd invertáló erősítőként működni (R/Rs nyereséggel).

\[\text{Ha } f_{be}<\frac{1}{2\pi RC}\Rightarrow \text{deriváló}\]

\[\text{Ha } f_{be}>\frac{1}{2\pi RC}\Rightarrow \text{invertáló}\]


Példa analóg integrálásra és deriválásra


Az analóg áramköröket integrálásra és differenciálegyenletek megoldására csak a régi analóg számítógépekben használták. Ma inkább analóg-digitális átalakítókban, hullámformálókban, vagy egyéb szabályozástechnikában vannak jelen.

Szinusz és koszninusz

Ha a műveleti erősítős integrálóra olyan feszültséget kapcsolunk, mely időben a koszinusz függvény szerint változik, akkor:

\[U_{ki}(t)=-\frac{1}{RC}\int_0^t U_{be}\cdot \cos(\omega t)\mathrm{d}t+U_{ki}(0)=-\frac{U_{be}}{\omega RC}\cdot \sin(\omega t)+U_{ki}(0)\]

Ha a műveleti erősítős deriválóra olyan feszültséget kapcsolunk, mely időben a szinusz függvény szerint változik, akkor:

\[U_{ki}=-RC\frac{d\left(U_{be}\cdot\sin(\omega t)\right)}{dt}=-\omega RC\cdot U_{be}\cdot\cos(\omega t)\]

Hatványozás

Ha az $U_{be}=x^2$ függvényt deriváljuk, akkor az azt jelenti, hogy egy véges, $x^2$ alakú jelt adunk a bemenetre. Az áramkör valós időben, azaz minden időegységben elvégzi a műveletet. Például t=5 pillanatban: 


\[U_{ki}(t)=\frac{1}{RC}\int_0^5 U_{be}\cdot x^2 \mathrm{d}t=\frac{U_{be}}{\omega RC}\cdot \frac{x^{2+1}}{2+1}=\frac{25}{\omega RC}\cdot\frac{x^3}{3}=\] \[=\frac{8,33}{\omega RC}\cdot \left(5^3-0^3\right)=\frac{1}{\omega RC}\cdot 1041,5 \text{ mV}\] \[(\omega = 2 \pi f)\]


Numerikus integrálás és deriválás


Integrálás


Bináris (digitális) adatokkal való integrálás/deriválás során a koordinátapontok alatti területet számítjuk ki és adjuk össze. Feltételezzük az, hogy az analóg jel mintavételezése elég nagy felbontású és gyors.

Téglalap szabály


Először a beérkező [a…b] számhalmazt n intervallumra bontjuk:
\[\Delta x=\frac{b-a}{n}\]
A kapott intervallumok:
\[[x_0,...,x_1],[x_1,...,x_2],...,[x_{n-k},...,x_n]\text{ ahol } x_0=a \text{ és } x_n=b\]

Minden intervallumnak a közepét tekintjük csakis hasznos számnak:
\[x_i^*=\frac{x_{i-k}+x_{i+k}}{2}\]


A kiszűrt számokra pedig alkalmazzuk a téglalap szabályt:

\[\int_a^b=f(x)\mathrm{d}x=\Delta x \sum_{i=1}^n f(x_i^*)=\Delta x[f(x_1^*)+f(x_2^*)+...+f(x_n^*)]\]

Minél több intervallumra bontjuk a számhalmazt, annál pontosabb eredményt kapunk, de annál többet kell dolgozzon a gép. Ha nem végzünk kvantálást, azaz minden szomszédos koordinátát számhalmaznak tekintünk, akkor:

\[\Delta x=\frac{b-a}{1}=b-a\] \[x_i^*=\frac{a+b}{2}\] \[\int_a^b f(x)\mathrm{d}x=(b-a)f\left(\frac{a+b}{2}\right)\]

Trapéz szabály


Először a beérkező [a…b] számhalmazt n intervallumra bontjuk:
\[\Delta x=\frac{b-a}{n}\]
A kapott intervallumok:
\[[x_0,...,x_1],[x_1,...,x_2],...,[x_{n-k},...,x_n]\text{ ahol } x_0=a \text{ és } x_n=b\]

A függvényt az intervallumok végpontjainak összekötésével közelítjük meg:


Az intervallumok trapézokat formálnak, melyek területe:
\[A_i=\frac{\Delta x}{2}[f(x_{i-1})+f(x_i)]\]

Ezek után n intervallumra alkalmazható a trapéz-szabály:

\[\int_a^b f(x)\mathrm{d} x=\sum_{i=1}^n A_i=\frac{\Delta x}{2}[f(x_0)+2f(x_1)+...+2f(x_{n-1})+f(x_n)]\]

Ha nem végzünk kvantálást, azaz minden szomszédos számot számhalmaznak tekintünk, akkor:

\[\Delta x=\frac{b-a}{1}=b-a\] \[A_i=\frac{b-a}{2}[f(a)+f(b)]\] \[\int_a^b f(x) \mathrm{d} x=(b-a)\left[\frac{f(a)+f(b)}{2}\right]\]

Simpson szabály


Először a beérkező [a…b] számhalmazt n páros intervallumra bontjuk:
\[\Delta x=\frac{b-a}{n}\]
A kapott intervallumok:
\[[x_0,...,x_1],[x_1,...,x_2],...,[x_{n-k},...,x_n]\text{ ahol } x_0=a \text{ és } x_n=b\]

Az intervallumokon négyzetes közelítést alkalmazunk (másodrendű polinomokkal), ezért legfeljebb három pontra van szükség a számításhoz. Mivel páros számú intervallum van, mindenik intervallumpár három határral rendelkezik:


A közelítési intervallumok különböző színűek, területük pedig:

\[A_i=\frac{\Delta x}{3}[f(x_{i-1})+4f(x_i)+f(x_{i+1})]\]

Ezek után n intervallumra alkalmazható a Simpson-szabály:

\[\int_a^b f(x)\mathrm{d} x=\sum_{i=1}^n A_i=\] \[=\frac{\Delta x}{3}[f(x_0)+4f(x_1)+2f(x_2)+...+2f(x_{n-2})+4f(x_{n-1})+f(x_n)]\]

Ha nem végzünk kvantálást, azaz minden szomszédos számot számhalmaznak tekintünk, akkor:

\[\Delta x=\frac{b-a}{1}=b-a\] \[A_i=\frac{b-a}{3}[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)]\] \[\int_a^b f(x) \mathrm{d} x=(b-a)\left[\frac{f(a)+4f\left(\frac{a+b}{2}\right)+f(b)}{3}\right]\]

Deriválás

A numerikus deriválás a beérkező koordinátapontok által felrajzolható függvény érintőjének meredekségét jelenti. A legegyszerűbb becslések két koordinátapont között:

\[f'(x)=\frac{f(x+h)-f(x)}{h}\text{ vagy }f'(x)=\frac{f(x)-f(x-h)}{h}\] \[\text{ vagy }f'(x)=\frac{f(x+h)-f(x-h)}{h}\]

A másodrangú derivált pedig:

\[f''(x)=\frac{f(x+h)-2f(x)+f(x-h)}{h^2}\]

Az első becslés x és (x+h) között a következőképp ábrázolható:


A kapott egyenes meredeksége annál közelebb fog a függvénygörbe meredekségéhez esni, minél közelebb áll h a nullához. Éppen ezért f igazi deriváltja x-ben a h nullába tartó határértéke lesz:

\[f'(x)=\lim_{h \to 0}\frac{f(x+h)-f(x)}{h}\]

Az (x+h) és (x-h) közötti becslésnél az érintő meredeksége $h^2$-tel arányosan különbözik az eredeti görbétől, ezért kisebb h értékek esetén pontosabb megközelítést kapunk mint a másik két esetben.

Példák numerikus integrálásra és deriválásra

Integrálás

Legyen n=4, a feldolgozandó intervallum pedig t=[0..2].


\[\Delta x=\frac{2-0}{4}=0,5 \Rightarrow [0, 0.5], [0.5, 1], [1, 1.5], [1.5, 2]\] \[x_i^*=\frac{x_{i-k}+x_{i+k}}{2} \Rightarrow [0.25, 0.75, 1.25, 1.75]\] \[f(x)=\cos(x)\Rightarrow \begin{cases} \text{Téglalap: }\Large{\Delta x\sum_{i=1}^n f(x_i^*)=0,5\cdot[\cos(0,25)+\cos(0,75)+\cos(1,25)+\cos(1,75)]=0,91884}\\ \text{Trapéz: }\Large{\sum_{i=1}^n A_i=\frac{0,5}{2}\cdot[\cos(0)+2\cos(0,5)+2\cos(1)+2\cos(1,5)+\cos(2)]=0,89027}\\ \text{Simpson: }\Large{\sum_{i=1}^n A_i=\frac{0,5}{3}\cdot[\cos(0)+4\cos(0,5)+2\cos(1)+4\cos(1,5)+\cos(2)]=0,90962}\end{cases}\]


Ellenőrzés:

\[\int_0^2 f(x)\mathrm{d}x=\sin(2)-\sin(0)=0,90923\]

Látható, hogy a három közül a Simpson becslés a legpontosabb. Mindez szoftveresen, például C++-ban:

#include<iostream.h>
#include<math.h>
using namespace std;

float funct(float a);
float teglalap();
float trapez();
float simpson();

float n,also,felso,dx;

int main()
{
    cout<<"n= ";cin>>n;
    cout<<"also hatar= ";cin>>also;
    cout<<"felso hatar= ";cin>>felso;
   
    dx=(felso-also)/n;
   
    cout<<"Teglalap="<<teglalap()<<endl;
    cout<<"Trapez="<<trapez()<<endl;
    cout<<"Simpson="<<simpson()<<endl;
   
    system("pause");
}

float teglalap()
{
      float osszeg=0;
      int i;
     
      for (i=0; i<n; i++)
          osszeg=osszeg+funct( ((also+i*dx)+(also+(i+1)*dx))/2 );
     
      return dx*osszeg;
}

float trapez()
{
      float osszeg=0;
      int i;
     
      for (i=1; i<=n-1; i++)
          osszeg=osszeg+2*funct(also+i*dx);
      osszeg=osszeg+funct(also)+funct(felso);
     
      return (dx/2)*osszeg;
}

float simpson()
{
      float osszeg=0;
      int i;
     
      for (i=2; i<=n-2; i++)
          osszeg=osszeg+2*funct(also+i*dx);
      osszeg=osszeg+4*funct(also+dx)+4*funct(felso-dx);
      osszeg=osszeg+funct(also)+funct(felso);
     
      return (dx/3)*osszeg;
}

float funct(float x)
{
    return cos(x);
}

funct függvényben az integrálandó matematikai függvény szerepel.


Deriválás

Legyen h=0,01:


\[f(x)=\cos(\frac{\pi}{3})\Rightarrow \begin{cases} f'(x)=\frac{\cos(x+h)-\cos(x)}{h}=\frac{0,49131-0,5}{0,01}=-0,8685\\ f'(x)=\frac{\cos(x)-\cos(x-h)}{h}=\frac{0,5-0,50864}{0,01}=-0,8635\\ f'(x)=\frac{\cos(x+h)-\cos(x-h)}{h2}=\frac{0,49131-0,50864}{0,02}=-0,8665\end{cases}\]

Ellenőrzés:

\[f'(x)=-\sin\left(\frac{\pi}{3}\right)=-0,866025\]

Látható, hogy az a becslés adott a legjobb eredményt, amelyik x-et középre vette. Mindez szoftveresen, például C++-ban:

#include<iostream.h>
#include<math.h>
using namespace std;

float funct(float a);

int main()
{
    float x,h;
   
    cout<<"x= ";cin>>x;
    cout<<"h= ";cin>>h;
    cout<<"[f(x+h)-f(x)]/h="<<(funct(x+h)-funct(x))/h<<endl;
    cout<<"[f(x)-f(x-h)]/h="<<(funct(x)-funct(x-h))/h<<endl;
    cout<<"[f(x+h)-f(x-h)]/h="<<(funct(x+h)-funct(x-h))/(2*h)<<endl;
   
    system("pause");
}

float funct(float x)
{
    return cos(x);

}

Az x bementet (pl. pi/3) radiánban kell megadni. A funct függvényben a deriválandó matematikai függvény szerepel.


Nincsenek megjegyzések:

Megjegyzés küldése