Rešitev: program Pravila za odvajanje (Mathematica)

Iz MaFiRaWiki

Naloga: program Pravila za odvajanje

 d::usage = "d[f] vrne odvod funkcije f po spremenljivki x";
 d::notes = "Funkcija d[f] zna po x odvajati konstante,(racionalne) potence,osnovne trigonometrične 
             funkcije in njihove poljubne vsote,razlike,produkte,kvociente in kompozitume.";

 odvajaj := 
    {
     q[n_Integer, x_] -> 0,
     q[x_, x_] -> 1,
     q[x_^n_Integer, x_] -> n x^(n - 1),
     q[x_^s_, x_] -> s x^(s - 1),
     q[Cos[x_], x_] ->  (-1) Sin[x]
     q[Sin[x_], x_] -> Cos[x],
     q[Tan[x_], x_] -> 1/(Cos[x])^2,
     q[Cot[x_], x_] -> -1/(Sin[x])^2,
     q[f_ + g_, x_] -> q[f, x] + q[g, x],
     q[f_ - g_, x_] -> q[f, x] - q[g, x],
     q[f_* g_, x_] -> q[f, x]*g + f*q[g, x],
     q[f_/g_, x_] -> ((q[f, x]*g) - (f*q[g, x]))/g^2
     q[f_[g_], x_] -> q[f[g], g]*q[g, x]
     }
 d[f_] := q[f, x] //. odvajaj

Primer uporabe:

In[5]:= d[7]
        d[5x^5 + 2x^4 + 94x^3 + 2x + 7]
        d[Cos[x]]
        d[Cos[x^2]]
        d[x^2 Cos[x] Sin[x]]
        d[Tan[x]]
        d[x^-5]
        d[x^(1/2)]

Out[5]= 0
Out[6]= 2 + 282 x^2 + 8 x^3 + 25 x^4
Out[7]= -Sin[x]
Out[8]= -2 x Sin[x^2]
Out[9]= 2 x Cos[x] Sin[x] + x^2( (Cos[x])^2 - (Sin[x])^2 )
Out[10]= (Sec[x])^2
Out[11]= -5/x^6
Out[12]= (1/2)*x^(-1/2) 

Glej tudi

Osebna orodja