Integrare Simbolica LISP

Imagine preview
(7/10 din 1 vot)

Acest referat descrie Integrare Simbolica LISP.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 7 pagini .

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca. Ai nevoie de doar 4 puncte.

Domeniu: Calculatoare

Extras din document

Tema 7:Integrare simbolica

Se va realiza integrarea simbolică în raport cu o variabilă.

Se permite citirea expresiei de integrat într-o formă mai uşor interpretabilă de program (forma prefix). Se va urmării tratarea cazurilor cât mai general posibile.

Exemplu: 2*X rezultă X^2+C.

Cerinte :

- se va realiza un program interactiv;

- documentatie.

Dificultate estimata: dificila

Efort de programare: mediu

Consideratii de implementare

Structura de date folosita pentru a implementa acest program este structura de lista prezenta in LISP.Citirea expresiei de integrat se va face sub forma prefix.Acest mod de citire este folosita pentru o mai usoara implementare.

In acest sens,au fost create au fost create o serie de functii care de asemenea sa usureze aceasta implementare :

- functii pentru a stabili tipul integralei care se doreste a fi calculata

ex : (defun is_inmultire (n)

(equal (car n) '*))

- functii de calcul a integralelor pentru fiecare caz particular

ex : (defun exponentiala (n)

(cond ((and (equal (car n) '^)(equal (cadr n) 'e) (equal (caddr n) 'x)) (list 'e^x+C))

((equal (caadr n) '*) (cons '+ (list (cons '* (cons (/ 1 (cadadr n)) n))'C)))))

- o functie care calculeaza orice tip de integrala si care verifica ce fel de integrala e folosindu-se de functiile specificate mai sus

(defun integrala (n)

(cond ((numberp n) (cons '+ (list (cons '* (cons n (list 'x) )) 'C)))

((equal n 'x) (cons '+ (list (cons '* (cons '0.5 (list (cons 'expt (cons 'x (list '2)))))) 'C )))

(t (cond ((is_adunare n) (append '(+) (mapcar 'integrala (cdr n))))

((is_scadere n) (append '(-) (mapcar 'integrala (cdr n))))

((is_putere n) (x^n&n^x n))

((is_sinus n) (sinus n))

((is_cosinus n) (cosinus n))

((is_exp n) (exponentiala n))

((and (atom n) (numberp n)) (integrala_numar))

(t (princ "Ati introdus un format gresit!") (terpri))))))

- functia program,care permite introducerea unei integrale de utilizator sau calculul unei integrale aflate in lista.

Programul trateaza expresii de forma: [integrala] f1 ±... fn ,acestea vor fi specificate sub forma : (± expresie1...expresien).

Toate expresiile sunt exprimate sub forma prefix.De exemplu daca vrem sa calculam e la puterea ax, semantica pentru program va fi :

(e (* a x)) iar valoarea integralei (valoarea returnata) va fi (+ (* 1/a E (* a X)) C)

Fisiere in arhiva (1):

  • Integrare Simbolica LISP.doc

Alte informatii

UNIVERSITATEA “POLITEHNICA” TIMISOARA FACULTATEA DE AUTOMATICA SI CALCULATOARE