kill(all)$

calculus, Leibniz's rule for differentiation under the integral sign (one variable),version 1.0a
peter.vlasschaert@gmail.com,16/08/2019

load :packages

info:https://en.wikipedia.org/wiki/Leibniz_integral_rule
calculus :Leibniz's rule for differentiation under the integral sign, named after Gottfried Leibniz.

load(lrats);

p1:'integrate(t^2*sin(t),t,x^2,5*x^3) = integrate(t^2*sin(t),t,x^2,5*x^3);

p2:'diff(lhs(p1),x)= diff(rhs(p1),x);

result : direct Maxima output
======================

p2a:expand(p2);

p2b:lratsubst([t=x],p2a);

p2c:ev(rhs(p2b),nouns);

Mathematics: 
==========

a) method : process for evaluation
---------------

how to get result:: leibniz rule ,differentayion under integral sign with variable range: x^2 to 5*x^3.

p3:args(lhs(p1));

p3a:f(t) = p3[1];
p3b:var = p3[2];
p3c:h(x) = p3[3];
p3d:g(x) =p3[4];

p4:lhs(p2)=lratsubst([t=rhs(p3d)],rhs(p3a) )*diff(rhs(p3d),x)-lratsubst([t=rhs(p3c)],rhs(p3a) )*diff(rhs(p3c),x);

p4a:lratsubst([t=x],p4);

b) method : function 'leibnitzrule1'
---------------------------------------------

function : one variable   ( = leibntzrule1 )
===============================

leibnizrule1(f1,varintegra,vardiff,h,g) :=  block([],
   m1:lratsubst([varintegra=g],f1)*diff(g,x),
   m2:lratsubst([varintegra=h],f1)*diff(h,x),
    m:m1-m2);

function : not allowed to use , h(x),g(x), => only single variables for arguments

how to use leibnizrule1
==================

p5:leibnizrule1(t^2*sin(t),t,x,x^2,5*x^3);

p5a:lhs(p2)=p5;

rem :

representation: leibnizrule1
=====================

process of evaluation  =>

'diff('integrate(f(t),t,h(x),g(x)),x) = f(g(x))*diff(g(x),x) -  f(h(x))*diff(h(x),x);