(no subject)
- Subject: (no subject)
 
- From: apeditedirra unasaltao
 
- Date: Wed, 24 Oct 2007 23:01:01 +0200 (CEST)
 
;; this allow the change of variables:
;; integrate(f(z(y))*diff(z(y),y),y)  ----->  integrate(f(z),z)  
(defun $changeux(ex var)
  (let (l   $ux u-x d-u-x x-1  $e1 $re)
    (unless (and (consp ex) (consp (car ex))  (eq (caar ex) 'mtimes)) (return-from $changeux (list '(mlist simp) ex var)))
    (setq l (remove-if-not (lambda(x) (and (consp x) (consp (car x))  (eq  '%derivative (caar x)))) ex))
    (when (> (length l) 1) (return-from $changeux (list '(mlist simp) ex var))) 
    (setq x-1 (cdr (cdar l)))
    (setq d-u-x (car l))
    (setq u-x (second d-u-x))
    (unless  (and (equal x-1 (list var 1)) (eq (second u-x) var)) (return-from $changeux (list '(mlist simp) ex var)))
    (setq $ux (second d-u-x))  
    (setq $e1 (remove d-u-x ex :test #'equal)) 
    (setq $re (subst (caar $ux) $ux $e1 :test #'equal))
    (if ($freeof var $re) (list '(mlist simp)   $re (caar $ux))
      (list '(mlist simp) ex var)))
) 
  
; we need to define in maxima this 
;           integrateux(exp,var):=apply(integrate,changeux(exp,var))
;example:   integrateux(y^3,y);
;example:   integrateux(v(y)/(v(y)+1)*diff(v(y),y),y);
       
---------------------------------
S? un Mejor Amante del Cine
?Quieres saber c?mo? ?Deja que otras personas te ayuden!.