kill(all)$

maxima :appendix integration conversion,vesion 1.0
peter.vlasschaert@gmail.com,18/02/2020

load 'packages'
===========

load(lrats)$

integration conversion ( integral  ⇒ list)
============================

first integral :indefinite integral

p1:integrate(f(x)*diff(g(x),x),x);

p1a:args(p1);

ll:list

ldintargs(ll):=block([],
    m:length(ll),
    m1:ll[1],
    m2:ll[2],
    return(integrate(m1,m2))
)$

grind(ldintargs);

ldintargs(p1a);

idintargs(kk):=block([],
    mi:args(kk)
  );

idintargs(p1);

indefinite integral → definite integral
===========================

see : website 'Dirac Delta function'
maxima :derivatives of the delta function , version 1.0a
peter.vlasschaert@gmail.com,18/02/2020

intargs(a1,a2,vari,ff):=block([],
    mi:integrate(ff,vari),
    m1:[a1,a2],
    m2:args(mi),
    m:flatten(append(m2,m1)),
    mp:[ff,vari,a1,a2] =integrate(ff,vari,a1,a2)
   )$

grind(intargs);

p2:intargs(minf,inf,x,p1a[1]);

p2a:rhs(p2) =lhs(p2);

given : p1
indefinite to definite integral

given : integral , 'p1'
==============

p3:p1;

lower   limit : al
upper  limit : au
===========

1e)  function :idintargs

p3a:idintargs(p3);

2e) integration boundary list

p3b:[al,au];

3e) combine , 'p3a' & 'p3b'
===================

p3c:append(p3a,p3b);

p3c1:p3c[1];

4e) new integral with integration boundaries

dldintargs(la):=block([],
    mdd:length(la),
    m11:la[1],
    m22:la[2],
    m33:la[3],
    m44:la[4],
    integrate(m11,m22,m33,m44)
)$

result :

p3d:dldintargs(p3c);

5e)new integral to a list.

didintargs(li):=block([],
    mdi:args(li)
    )$

p3d1:didintargs(p3d);

used : Maxima, commands
====================

args        :give a list out
append    :combine two lists
flatten      :use after append : result 'one list'
integrate : integrate(expr,variable,lower limit ,upper limit)
grind       : optimize code output from a fuction , 'see examples above'