tecnica |
Realizzato da
Riccardo Giomi
Ivan Ricotti
Il file derivate.pro contiene delle regole e dei fatti relativi alla derivata di alcune semplici funzioni (principalmente le funzioni polinomiali, esponenziali, logaritmiche e trigonometriche). Mediante il meccanismo della ricorsione è possibile domandare all'interprete la derivata della somma, differenza, prodotto, divisione e composizioni di più funzioni. Si noti come l'uso del cut dopo ogni regola garantisca, come è giusto che sia, che ogni derivata abbia una sola soluzione impedendo all'interprete di cercare di soddisfare nuovamente il goal corrente.
D(x,1):-!.
D(sen(x),cos(x)):-!.
D(cos(x),-sen(x)):-!.
D(log(x),1/x):-!.
D(exp(x),exp(x)):-!.
D(-X,Z):- D(X,A),
Z = - A,!.
D(X+Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A + B,!.
D(X+Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = B,!.
D(X+Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A,!.
D(X-Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A - B,!.
D(X-Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = B,!.
D(X-Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A,!.
D(X*Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A * Y + X * B,!.
D(X*Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = X * B,!.
D(X*Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A * Y,!.
D(X/Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = [A * Y - X * B] / [Y] ^ 2,!.
D(X/Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = [-X * B] / [Y] ^ 2,!.
D(X/Y,Z):- D(X,A),D(Y,B),
A==0,B==0,
Z = A / Y,!.
D(N*X,Z):- D(X,A),
Z = N * A.
D(x^N,Y):- Z is N-l,
Y = N * x ^ Z,!.
D(X^N,Y):- D(X,A),
A==0,
Z is N-l,
Y = N * X ^ Z * A,!.
D(sen(X),Z):- D(X,B),
B==0,
Z = [cos(X)] * B,!.
D(cos(X),Z):- D(X,B),
B==0,
Z = [-sen(X)] * B,!.
D(log(X),Z):- D(X,B),
B==0,
Z = [1/(X)] * B,!.
D(exp(X),Z):- D(X,B),
B==0,
Z = exp(X) * B,!.
D(N,0).
Privacy
|
© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta