'********************************************************* '* Calculate a limited development of a real function * '* f(x)/g(x) at x=0 up to order 25, knowing the limited * '* developments of f(x) and g(x). * '* ----------------------------------------------------- * '* SAMPLE RUN: * '* * '* Limited development of a real function f(x)/g(x): * '* * '* Function to develop: exp(x)/1+x * '* * '* Limited development of f(x)=exp(x) is: * '* 1 + x + x^2/2' + x^3/3' + ... + x^n/n' + ... * '* * '* Limited development of g(x)=1+x is: * '* 1 + x * '* * '* Order of development (max=25): 6 * '* * '* Input coefficients of limited dev. of f(x): * '* a0 = 1 * '* a1 = 1 * '* a2 = 0.5 * '* a3 = 0.1666667 * '* a4 = 0.0416667 * '* a5 = 0.0083333 * '* a6 = 0.0013889 * '* * '* Input coefficients of limited dev. of g(x): * '* b0 = 1 * '* b1 = 1 * '* b2 = 0 * '* b3 = 0 * '* b4 = 0 * '* b5 = 0 * '* b6 = 0 * '* * '* The coefficients of limited dev. of f(x)/g(x) are: * '* c0 = 1.0000000 * '* c1 = 0.0000000 * '* c2 = 0.5000000 * '* c3 = -0.3333333 * '* c4 = 0.3750000 * '* c5 = -0.3666667 * '* c6 = 0.3680556 * '* * '* Function to develop: 1/1+sh(x) * '* * '* Limited development of g(x)=1+sh(x) is: * '* 1 + x + x^3/3' + x^5/5' + ... + x^2n+1/(2n+1)' + ... * '* * '* Order of development (max=25): 6 * '* * '* Input coefficients of limited dev. of f(x): * '* a0 = 1 * '* a1 = 0 * '* a2 = 0 * '* a3 = 0 * '* a4 = 0 * '* a5 = 0 * '* a6 = 0 * '* * '* Input coefficients of limited dev. of g(x): * '* b0 = 1 * '* b1 = 1 * '* b2 = 0 * '* b3 = 0.1666667 * '* b4 = 0 * '* b5 = 0.0083333 * '* b6 = 0 * '* * '* The coefficients of limited dev. of f(x)/g(x) are: * '* c0 = 1.0000000 * '* c1 = -1.0000000 * '* c2 = 1.0000000 * '* c3 = -1.1666667 * '* c4 = 1.3333334 * '* c5 = -1.5083334 * '* c6 = 1.7111112 * '* * '* ----------------------------------------------------- * '* Ref.: "Mathematiques en Turbo Pascal by Alain * '* Reverchon and Marc Ducamp, Armand Colin * '* Editeur, Paris, 1991" [BIBLI 03]. * '* * '* Basic Version By J-P Moreau. * '* (www.jpmoreau.fr) * '********************************************************* 'Program ltddev2 DEFDBL A-H, O-Z DEFINT I-N NSIZE = 25 DIM t1(NSIZE + 1), t2(NSIZE + 1), R(NSIZE + 1) CLS PRINT PRINT " Limited development of a real function f(x)/g(x):" PRINT PRINT " Function to develop: exp(x)/1+x" PRINT PRINT " Limited development of f(x)=exp(x) is:" PRINT " 1 + x + x^2/2' + x^3/3' + ... + x^n/n' + ..." PRINT PRINT " Limited development of g(x)=1+x is:" PRINT " 1 + x" PRINT INPUT " Order of development (max=25): ", n PRINT PRINT " Input coefficients of limited dev. of f(x):" FOR i = 0 TO n PRINT " a"; i; " = "; : INPUT "", t1(i + 1) NEXT i PRINT PRINT " Input coefficients of limited dev. of g(x):" FOR i = 0 TO n PRINT " b"; i; " = "; : INPUT "", t2(i + 1) NEXT i PRINT GOSUB 1000 'call ar_dldiv(n,t1,t2,R) PRINT " The coefficients of limited dev. of f(x)/g(x) are:" FOR i = 0 TO n PRINT " c"; i; " = "; : PRINT USING "##.#######"; R(i + 1) NEXT i PRINT END 'Subroutine ar_dldiv(n,t1,t2,R) 1000 IF (n > NSIZE) THEN RETURN IF ABS(t2(1)) < 1E-12 THEN RETURN R(1) = t1(1) / t2(1) FOR i = 1 TO n x = t1(i + 1) FOR j = 1 TO i x = x - t2(j + 1) * R(i - j + 1) NEXT j R(i + 1) = x NEXT i RETURN 'end of file ltddev2.bas