Post Reply 
Rational functions Polynomial expansion.....[partfrac or cpartfrac]:
08-24-2015, 01:56 AM (This post was last modified: 08-24-2015 02:38 AM by toshk.)
Post: #6
RE: Rational functions Polynomial expansion.....[partfrac or cpartfrac]: ilaplace()
Use this in conjunction with ilaplace() which Prime finds difficult to solve:
PHP Code:
#pragma mode( separator(.,;) integer(h32) )
Residue1();
Residue2();
#cas
Residues(f)
BEGIN
local n
,a,ms,ms2,M1,denmnumm;
L0:={};L4:={};L2:={};
f:=exact(f);
f1:=numer(f);
f2:=denom(f);
numm:=coeff((expand(f1)));
denm:=coeff((expand(f2)));
IF 
degree(numm)>=degree(denmTHEN a:=quo(numm,denm); else a:=0;END;
M1:=proot(denm);
M1:=sort(M1);
ms:=size(M1);
L0:=mat2list(M1);
A:=0;B:=1;
REPEAT ms:=size(L0); L2:=remove(L0(1),L0); ms2:=size(L2);A:=ms-ms2;
IF 
A==OR A==0 then Residue1();else Residue2();end;
UNTIL size(L0)==0;
return(
ΣLIST(L4)+poly2symb(a));
END;
#end

#cas
Residue1()
BEGIN
local n
,fa,derf,derfa
derf:=diff(f2,x);
fa:=subst(f1,x=L0(1));
derfa:=subst(derf,x=L0(1));
n:=fa/derfa;
L4(B):=n/(x-L0(1));
B++;
L0:=L2;
END;
#end

#cas
Residue2()
BEGIN
local n
,ffa,c,ff1,ff2;
c:=A;
ff2:=subst(simplify(f*(x-L0(1))^c),x,L0(1)); L4(B):=ff2/(x-L0(1))^cB++;
ff1:=simplify(f*(x-L0(1))^c);
FOR 
n FROM 1 TO A-1 STEP 1 DO
ff1:=simplify(diff(ff1,x));
ffa:=1/(A-1)!*subst(ff1,x=L0(1));
L4(B):=ffa/(x-L0(1))^(c-n);
B++;
end;
L0:=L2;
END;
#end 
   
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Rational functions Polynomial expansion.....[partfrac or cpartfrac]: ilaplace() - toshk - 08-24-2015 01:56 AM



User(s) browsing this thread: 1 Guest(s)