ePerTutti


Appunti, Tesina di, appunto tecnica

PROGRAMMA PROLOG SULLA -DERIVATA DI FUNZIONI

ricerca 1
ricerca 2

Programma Prolog sulla

Derivata di funzioni


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