05-22-2015, 01:24 PM

Here's a small CAS function deTaylor for the HP-Prime (similiar to deSolve) which I've originally written for Xcas.

It approximately solves 1st- and 2nd-order differential equations (with initial conditions) as n-th degree Taylor polynomial.

1st order y'=f(x,y) with y(x0)=y0:

deTaylor(f,[x,y],[x0,y0],n)

2nd order y''=f(x,y,y') with y(x0)=y0 and y'(x0)=y0':

deTaylor(f,[x,y,z],[x0,y0,z0],n)

(I'm using z instead of y', because y' can't be used as input)

Here's the function definition:

(you can directly copy&paste it into the Prime-emulator commandline in CAS-mode)

Example 1: y'=x*y^2+1 with y(0)=1 (6th-degree approximation):

deTaylor(x*y^2+1,[x,y],[0,1],6)

Example 2: y''=x*y*y' with y(1)=2 and y'(1)=3 (5th degree):

deTaylor(x*y*z,[x,y,z],[1,2,3],5)

Maybe it's useful for someone,

Franz

It approximately solves 1st- and 2nd-order differential equations (with initial conditions) as n-th degree Taylor polynomial.

1st order y'=f(x,y) with y(x0)=y0:

deTaylor(f,[x,y],[x0,y0],n)

2nd order y''=f(x,y,y') with y(x0)=y0 and y'(x0)=y0':

deTaylor(f,[x,y,z],[x0,y0,z0],n)

(I'm using z instead of y', because y' can't be used as input)

Here's the function definition:

(you can directly copy&paste it into the Prime-emulator commandline in CAS-mode)

Code:

deTaylor(f,v,c,n):=

BEGIN

local k,yk,sol;

yk:=v(2); sol:=c(2);

IF dim(v)<2 or dim(v)>3 or dim(v)<>dim(c) THEN

RETURN("Argument error!");

END;

FOR k FROM 1 TO n STEP 1 DO

IF dim(v)=2 THEN

yk:=diff(yk,v(1))+f*diff(yk,v(2));

sol+=subst(yk,[v(1)=c(1),v(2)=c(2)])/k!*(v(1)-c(1))^k;

ELSE

yk:=diff(yk,v(1))+v(3)*diff(yk,v(2))+f*diff(yk,v(3));

sol+=subst(yk,[v(1)=c(1),v(2)=c(2),v(3)=c(3)])/k!*(v(1)-c(1))^k;

END;

END;

expand(simplify(sol));

END

Example 1: y'=x*y^2+1 with y(0)=1 (6th-degree approximation):

deTaylor(x*y^2+1,[x,y],[0,1],6)

Example 2: y''=x*y*y' with y(1)=2 and y'(1)=3 (5th degree):

deTaylor(x*y*z,[x,y,z],[1,2,3],5)

Maybe it's useful for someone,

Franz