tp3.mw

TP3 : Calcul de séries par itération de Newton 

> restart;
 

Introduction : arbres binaires 

Q1. Une procédure calculant les nombres de Catalan 

> a:=proc(n) option remember; if n=0 then 1 else add(a(i)*a(n-i-1),i=0..n-1) fi end;
 

proc (n) option remember; if n = 0 then 1 else add(`*`(a(i), `*`(a(`+`(n, `-`(i), `-`(1))))), i = 0 .. `+`(n, `-`(1))) end if end proc
 

> L:=[seq(a(i),i=0..10)];
 

[1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796]
 

Q2. Une équation devinée 

> gfun:-listtoalgeq(L,y(z));
 

[`+`(`-`(1), y(z), `-`(`*`(z, `*`(`^`(y(z), 2))))), ogf]
 

Q3. Résolution et vérification 

> solve(%[1],y(z));
 

`+`(`/`(`*`(`/`(1, 2), `*`(`+`(1, `*`(`^`(`+`(1, `-`(`*`(4, `*`(z)))), `/`(1, 2)))))), `*`(z))), `+`(`-`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(1), `*`(`^`(`+`(1, `-`(`*`(4, `*`(z)))), `/`(1, 2)))))), `*`(z))...
 

> map(series,[%],z);
 

[series(`+`(`^`(z, -1), `-`(1), `-`(z), `-`(`*`(2, `*`(`^`(z, 2)))), `-`(`*`(5, `*`(`^`(z, 3)))), `-`(`*`(14, `*`(`^`(z, 4)))))+O(`^`(z, 5)),z,5), series(`+`(1, z, `*`(2, `*`(`^`(z, 2))), `*`(5, `*`(`...
 

C'est donc la seconde qui est la bonne. 

> sol:=%%[2];
 

`+`(`-`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(1), `*`(`^`(`+`(1, `-`(`*`(4, `*`(z)))), `/`(1, 2)))))), `*`(z))))
 

> C100:=coeff(series(sol,z,105),z,100);
 

896519947090131496687170070074100632420837521538745909320
 

> C100-a(100);
 

0
 

Q4. Une récurrence satisfaite par les C[n] 

> gfun:-listtorec(L,c(n));
 

[{`+`(`*`(`+`(`-`(`*`(4, `*`(n))), `-`(6)), `*`(c(`+`(n, 1)))), `*`(`+`(n, 3), `*`(c(`+`(n, 2))))), c(0) = 1, c(1) = 1}, ogf]
 

> rsolve(op(1,%),c(n));
 

`/`(`*`(`^`(4, n), `*`(GAMMA(`+`(n, `/`(1, 2))))), `*`(`^`(Pi, `/`(1, 2)), `*`(GAMMA(`+`(n, 2)))))
 

> simplify(eval(%,n=100)-C100);
 

0
 

Arbres d'arité 5 et équations algébriques 

Q5. Leur nombre pour n = 0, () .. (), 20 

> a:=proc(n) option remember; if n=0 then 1 else add(add(add(add(a(i1)*a(i2)*a(i3)*a(i4)*a(n-1-i1-i2-i3-i4),i4=0..n-1-i1-i2-i3),i3=0..n-1-i1-i2),i2=0..n-1-i1),i1=0..n-1) fi end;
 

proc (n) option remember; if n = 0 then 1 else add(add(add(add(`*`(a(i1), `*`(a(i2), `*`(a(i3), `*`(a(i4), `*`(a(`+`(n, `-`(1), `-`(i1), `-`(i2), `-`(i3), `-`(i4)))))))), i4 = 0 .. `+`(n, `-`(1), `-`(...
proc (n) option remember; if n = 0 then 1 else add(add(add(add(`*`(a(i1), `*`(a(i2), `*`(a(i3), `*`(a(i4), `*`(a(`+`(n, `-`(1), `-`(i1), `-`(i2), `-`(i3), `-`(i4)))))))), i4 = 0 .. `+`(n, `-`(1), `-`(...
proc (n) option remember; if n = 0 then 1 else add(add(add(add(`*`(a(i1), `*`(a(i2), `*`(a(i3), `*`(a(i4), `*`(a(`+`(n, `-`(1), `-`(i1), `-`(i2), `-`(i3), `-`(i4)))))))), i4 = 0 .. `+`(n, `-`(1), `-`(...
proc (n) option remember; if n = 0 then 1 else add(add(add(add(`*`(a(i1), `*`(a(i2), `*`(a(i3), `*`(a(i4), `*`(a(`+`(n, `-`(1), `-`(i1), `-`(i2), `-`(i3), `-`(i4)))))))), i4 = 0 .. `+`(n, `-`(1), `-`(...
 

> L:=[seq(a(i),i=0..20)];
 

[1, 1, 5, 35, 285, 2530, 23751, 231880, 2330445, 23950355, 250543370, 2658968130, 28558343775, 309831575760, 3390416787880, 37377257159280, 414741863546285, 4628362722856425, 51912988256282175, 584909...
[1, 1, 5, 35, 285, 2530, 23751, 231880, 2330445, 23950355, 250543370, 2658968130, 28558343775, 309831575760, 3390416787880, 37377257159280, 414741863546285, 4628362722856425, 51912988256282175, 584909...
 

Q6. Un polynôme dont la série génératrice est solution 

> gfun:-listtoalgeq(L,y(z));
 

FAIL
 

> gfun:-Parameters(maxdegeqn=10);
 

3
 

> gfun:-listtoalgeq(L,y(z));
 

[`+`(`-`(1), y(z), `-`(`*`(z, `*`(`^`(y(z), 5))))), ogf]
 

> pol:=subs(y(z)=y,%[1]);
 

`+`(`-`(1), y, `-`(`*`(z, `*`(`^`(y, 5)))))
 

Q7. Les 64 premiers coefficients par itération de Newton 

> dpol:=diff(pol,y);
 

`+`(1, `-`(`*`(5, `*`(z, `*`(`^`(y, 4))))))
 

> newt:=proc(n) local G; if n=1 then 1 else G:=convert(newt(ceil(n/2)),polynom); series(G-subs(y=G,pol/dpol),z,n) fi end;
 

>
 

 

> S:=newt(64);
 

series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
series(`+`(1, z, `*`(5, `*`(`^`(z, 2))), `*`(35, `*`(`^`(z, 3))), `*`(285, `*`(`^`(z, 4))), `*`(2530, `*`(`^`(z, 5))), `*`(23751, `*`(`^`(z, 6))), `*`(231880, `*`(`^`(z, 7))), `*`(2330445, `*`(`^`(z, ...
 

Vérification : 

> coeff(S,z,30)-a(30);
 

0
 

Q8. Forme close pour les coefficients 

> gfun:-seriestorec(series(S,z,51),u(n));
 

[{`+`(`*`(`+`(`-`(15120), `-`(`*`(41250, `*`(n))), `-`(`*`(41875, `*`(`^`(n, 2)))), `-`(`*`(18750, `*`(`^`(n, 3)))), `-`(`*`(3125, `*`(`^`(n, 4))))), `*`(u(`+`(n, 1)))), `*`(`+`(`*`(6600, `*`(n)), 302...
 

> rsolve(%[1],u(n));
 

`+`(`/`(`*`(`/`(1, 4), `*`(GAMMA(`+`(n, `/`(1, 5))), `*`(GAMMA(`+`(n, `/`(2, 5))), `*`(GAMMA(`+`(n, `/`(3, 5))), `*`(GAMMA(`+`(n, `/`(4, 5))), `*`(`+`(cos(`+`(`*`(`/`(2, 5), `*`(Pi)))), cos(`+`(`*`(`/...
 

> val60:=eval(%,n=60);
 

`+`(`/`(`*`(`/`(2585323446352923258459580381965208012586569042182545848678257220546787526640706469769801415311648890733730710830554759291540440404463840833703596135149106480374382921319198695717166866...
`+`(`/`(`*`(`/`(2585323446352923258459580381965208012586569042182545848678257220546787526640706469769801415311648890733730710830554759291540440404463840833703596135149106480374382921319198695717166866...
`+`(`/`(`*`(`/`(2585323446352923258459580381965208012586569042182545848678257220546787526640706469769801415311648890733730710830554759291540440404463840833703596135149106480374382921319198695717166866...
`+`(`/`(`*`(`/`(2585323446352923258459580381965208012586569042182545848678257220546787526640706469769801415311648890733730710830554759291540440404463840833703596135149106480374382921319198695717166866...
 

> val60:=simplify(%);
 

37518239045757575457227301866981461032972286694302287003351600
 

> coeff(S,z,60)-%;
 

0
 

Des arbres bicolorés et un système 

> sys:={B=z+z*V/(1-V)/(1-B),V=z+z*B^2/(1-V)/(1-B)};
 

{B = `+`(z, `/`(`*`(z, `*`(V)), `*`(`+`(1, `-`(V)), `*`(`+`(1, `-`(B)))))), V = `+`(z, `/`(`*`(z, `*`(`^`(B, 2))), `*`(`+`(1, `-`(V)), `*`(`+`(1, `-`(B))))))}
 

> sys:=[seq(op(1,eq)-op(2,eq),eq=sys)];
 

[`+`(B, `-`(z), `-`(`/`(`*`(z, `*`(V)), `*`(`+`(1, `-`(V)), `*`(`+`(1, `-`(B))))))), `+`(V, `-`(z), `-`(`/`(`*`(z, `*`(`^`(B, 2))), `*`(`+`(1, `-`(V)), `*`(`+`(1, `-`(B)))))))]
 

Q9. La matrice jacobienne du système 

> jac:=linalg[jacobian](sys,[B,V]);
 

array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `+`(1, `-`(`/`(`*`(z, `*`(`^`(B, 2))), `*`(`^`(`+`(1, `-`(V)), 2), `*`(`+`(1, `-`(B))))))), ( 1, 1 ) = `+`(1, `-`(`/`(`*`(z, `*`(V)), `*`(`+`(1, `-`(V)), `*`(`^`(`+`...
 

Q10. Formation de l'itération de Newton 

On utilise la possibilité de faire de l'inversion symbolique (mais on pourrait aussi faire l'inversion en série, ce qui serait moins coûteux) : 

> jacm1:=linalg[inverse](jac);
 

array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
array( 1 .. 2, 1 .. 2, [( 2, 2 ) = `/`(`*`(`+`(`-`(1), `*`(2, `*`(B)), `-`(`*`(`^`(B, 2))), V, `-`(`*`(2, `*`(V, `*`(B)))), `*`(V, `*`(`^`(B, 2))), `*`(z, `*`(V))), `*`(`^`(`+`(`-`(1), V), 2), `*`(`+`...
 

> newtit:=convert(evalm([B,V]-jacm1 &* sys),list);
 

[`+`(B, `-`(`/`(`*`(`+`(`-`(1), B, `*`(2, `*`(V)), `-`(`*`(2, `*`(V, `*`(B)))), `-`(`*`(`^`(V, 2))), `*`(`^`(V, 2), `*`(B)), `*`(z, `*`(`^`(B, 2)))), `*`(`+`(`-`(1), V), `*`(`^`(`+`(`-`(1), B), 2), `*...
[`+`(B, `-`(`/`(`*`(`+`(`-`(1), B, `*`(2, `*`(V)), `-`(`*`(2, `*`(V, `*`(B)))), `-`(`*`(`^`(V, 2))), `*`(`^`(V, 2), `*`(B)), `*`(z, `*`(`^`(B, 2)))), `*`(`+`(`-`(1), V), `*`(`^`(`+`(`-`(1), B), 2), `*...
[`+`(B, `-`(`/`(`*`(`+`(`-`(1), B, `*`(2, `*`(V)), `-`(`*`(2, `*`(V, `*`(B)))), `-`(`*`(`^`(V, 2))), `*`(`^`(V, 2), `*`(B)), `*`(z, `*`(`^`(B, 2)))), `*`(`+`(`-`(1), V), `*`(`^`(`+`(`-`(1), B), 2), `*...
[`+`(B, `-`(`/`(`*`(`+`(`-`(1), B, `*`(2, `*`(V)), `-`(`*`(2, `*`(V, `*`(B)))), `-`(`*`(`^`(V, 2))), `*`(`^`(V, 2), `*`(B)), `*`(z, `*`(`^`(B, 2)))), `*`(`+`(`-`(1), V), `*`(`^`(`+`(`-`(1), B), 2), `*...
[`+`(B, `-`(`/`(`*`(`+`(`-`(1), B, `*`(2, `*`(V)), `-`(`*`(2, `*`(V, `*`(B)))), `-`(`*`(`^`(V, 2))), `*`(`^`(V, 2), `*`(B)), `*`(z, `*`(`^`(B, 2)))), `*`(`+`(`-`(1), V), `*`(`^`(`+`(`-`(1), B), 2), `*...
[`+`(B, `-`(`/`(`*`(`+`(`-`(1), B, `*`(2, `*`(V)), `-`(`*`(2, `*`(V, `*`(B)))), `-`(`*`(`^`(V, 2))), `*`(`^`(V, 2), `*`(B)), `*`(z, `*`(`^`(B, 2)))), `*`(`+`(`-`(1), V), `*`(`^`(`+`(`-`(1), B), 2), `*...
 

> newt:=proc(n) local G; if n=1 then [0,0] else G:=map(convert,newt(ceil(n/2)),polynom); map(series,subs(B=G[1],V=G[2],newtit),z,n) fi end;
 

proc (n) local G; if n = 1 then [0, 0] else `assign`(G, map(convert, newt(ceil(`+`(`*`(`/`(1, 2), `*`(n))))), polynom)); map(series, subs(B = G[1], V = G[2], newtit), z, n) end if end proc
 

Q11. Itération jusqu'à la taille 31 

> newt(32)[1];
 

series(`+`(z, `^`(z, 2), `*`(2, `*`(`^`(z, 3))), `*`(5, `*`(`^`(z, 4))), `*`(16, `*`(`^`(z, 5))), `*`(55, `*`(`^`(z, 6))), `*`(193, `*`(`^`(z, 7))), `*`(692, `*`(`^`(z, 8))), `*`(2542, `*`(`^`(z, 9)))...
series(`+`(z, `^`(z, 2), `*`(2, `*`(`^`(z, 3))), `*`(5, `*`(`^`(z, 4))), `*`(16, `*`(`^`(z, 5))), `*`(55, `*`(`^`(z, 6))), `*`(193, `*`(`^`(z, 7))), `*`(692, `*`(`^`(z, 8))), `*`(2542, `*`(`^`(z, 9)))...
series(`+`(z, `^`(z, 2), `*`(2, `*`(`^`(z, 3))), `*`(5, `*`(`^`(z, 4))), `*`(16, `*`(`^`(z, 5))), `*`(55, `*`(`^`(z, 6))), `*`(193, `*`(`^`(z, 7))), `*`(692, `*`(`^`(z, 8))), `*`(2542, `*`(`^`(z, 9)))...
 

Arbres ordonnés et équation différentielle 

> deq:=diff(y(x),x)=1+y(x)^3;
 

diff(y(x), x) = `+`(1, `*`(`^`(y(x), 3)))
 

Q12. L'équation linéarisée et sa résolution 

> deq:=op(1,deq)-op(2,deq);
 

`+`(diff(y(x), x), `-`(1), `-`(`*`(`^`(y(x), 3))))
 

> eval(deq,y(x)=y(x)+u(x))-deq;
 

`+`(diff(u(x), x), `-`(`*`(`^`(`+`(y(x), u(x)), 3))), `*`(`^`(y(x), 3)))
 

> expand(%);
 

`+`(diff(u(x), x), `-`(`*`(3, `*`(`^`(y(x), 2), `*`(u(x))))), `-`(`*`(3, `*`(y(x), `*`(`^`(u(x), 2))))), `-`(`*`(`^`(u(x), 3))))
 

On ne garde que la partie linéaire : 

> lineq:=subs(u(x)^2=0,u(x)^3=0,%)=deq;
 

`+`(diff(u(x), x), `-`(`*`(3, `*`(`^`(y(x), 2), `*`(u(x)))))) = `+`(diff(y(x), x), `-`(1), `-`(`*`(`^`(y(x), 3))))
 

> dsolve(lineq,u(x));
 

u(x) = `*`(`+`(Int(`*`(`+`(diff(y(x), x), `-`(1), `-`(`*`(`^`(y(x), 3)))), `*`(exp(`+`(`-`(`*`(3, `*`(Int(`*`(`^`(y(x), 2)), x)))))))), x), _C1), `*`(exp(Int(`+`(`*`(3, `*`(`^`(y(x), 2)))), x))))
 

> findu:=proc(y,ord) local hom; hom:=series(exp(Int(3*y^2,x)),x,ord); series(hom*Int(series((diff(y,x)-1-y^3)/hom,x,ord),x),x,ord) end;
 

proc (y, ord) local hom; `assign`(hom, series(exp(Int(`+`(`*`(3, `*`(`^`(y, 2)))), x)), x, ord)); series(`*`(hom, `*`(Int(series(`/`(`*`(`+`(diff(y, x), `-`(1), `-`(`*`(`^`(y, 3))))), `*`(hom)), x, or...
 

Q13. Itération de Newton 

> newt:=proc(n) local G; if n=1 then x else G:=convert(newt(ceil(n/2)),polynom); series(G-findu(G,n),x,n) fi end;
 

proc (n) local G; if n = 1 then x else `assign`(G, convert(newt(ceil(`+`(`*`(`/`(1, 2), `*`(n))))), polynom)); series(`+`(G, `-`(findu(G, n))), x, n) end if end proc
 

> newt(32);
 

series(`+`(x, `*`(`/`(1, 4), `*`(`^`(x, 4))), `*`(`/`(3, 28), `*`(`^`(x, 7))), `*`(`/`(57, 1120), `*`(`^`(x, 10))), `*`(`/`(737, 29120), `*`(`^`(x, 13))), `*`(`/`(42153, 3261440), `*`(`^`(x, 16))), `*...
 

Arbres 2-3 et équation fonctionnelle 

> eq:=T(z)=z+T(z^2+z^3);
 

T(z) = `+`(z, T(`+`(`*`(`^`(z, 2)), `*`(`^`(z, 3)))))
 

> eq:=op(1,eq)-op(2,eq);
 

`+`(T(z), `-`(z), `-`(T(`+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))))))
 

Q14. Équation linéarisée 

> eval(eq,T=proc(z) T(z)+u(z) end)-eq=eq;
 

`+`(u(z), `-`(u(`+`(`*`(`^`(z, 2)), `*`(`^`(z, 3)))))) = `+`(T(z), `-`(z), `-`(T(`+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))))))
 

Q15. Résolution par itération 

L'idée est que pour résoudre l'équation  

> subsop(2=A(z),%);
 

`+`(u(z), `-`(u(`+`(`*`(`^`(z, 2)), `*`(`^`(z, 3)))))) = A(z)
 

il suffit d'itérer 

> isolate(%,u(z));
 

u(z) = `+`(A(z), u(`+`(`*`(`^`(z, 2)), `*`(`^`(z, 3)))))
 

Voici donc une procédure qui calcule S à partir de T: 

> evaleq:=proc(T, ord) series(T-z-subs(z=z^2+z^3,T),z,ord) end;
 

proc (T, ord) series(`+`(T, `-`(z), `-`(subs(z = `+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))), T))), z, ord) end proc
 

et l'itération pour calculer u: 

> findu:=proc(s, ord) local estim, new, membredroit; membredroit:=evaleq(s,ord); estim:=membredroit; do new:=series(membredroit+subs(z=z^2+z^3,estim),z,ord); if new=estim then return new else estim:=new fi od; end;
 

proc (s, ord) local estim, new, membredroit; `assign`(membredroit, evaleq(s, ord)); `assign`(estim, membredroit); do `assign`(new, series(`+`(membredroit, subs(z = `+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))),...
proc (s, ord) local estim, new, membredroit; `assign`(membredroit, evaleq(s, ord)); `assign`(estim, membredroit); do `assign`(new, series(`+`(membredroit, subs(z = `+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))),...
proc (s, ord) local estim, new, membredroit; `assign`(membredroit, evaleq(s, ord)); `assign`(estim, membredroit); do `assign`(new, series(`+`(membredroit, subs(z = `+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))),...
proc (s, ord) local estim, new, membredroit; `assign`(membredroit, evaleq(s, ord)); `assign`(estim, membredroit); do `assign`(new, series(`+`(membredroit, subs(z = `+`(`*`(`^`(z, 2)), `*`(`^`(z, 3))),...
 

Q20. L'itération de Newton 

> newt:=proc(n)local G; if n=1 then z else G:=convert(newt(ceil(n/2)),polynom); series(G-findu(G,n),z,n) fi end;
 

proc (n) local G; if n = 1 then z else `assign`(G, convert(newt(ceil(`+`(`*`(`/`(1, 2), `*`(n))))), polynom)); series(`+`(G, `-`(findu(G, n))), z, n) end if end proc
 

> newt(64);
 

series(`+`(z, `^`(z, 2), `^`(z, 3), `^`(z, 4), `*`(2, `*`(`^`(z, 5))), `*`(2, `*`(`^`(z, 6))), `*`(3, `*`(`^`(z, 7))), `*`(4, `*`(`^`(z, 8))), `*`(5, `*`(`^`(z, 9))), `*`(8, `*`(`^`(z, 10))), `*`(14, ...
series(`+`(z, `^`(z, 2), `^`(z, 3), `^`(z, 4), `*`(2, `*`(`^`(z, 5))), `*`(2, `*`(`^`(z, 6))), `*`(3, `*`(`^`(z, 7))), `*`(4, `*`(`^`(z, 8))), `*`(5, `*`(`^`(z, 9))), `*`(8, `*`(`^`(z, 10))), `*`(14, ...
series(`+`(z, `^`(z, 2), `^`(z, 3), `^`(z, 4), `*`(2, `*`(`^`(z, 5))), `*`(2, `*`(`^`(z, 6))), `*`(3, `*`(`^`(z, 7))), `*`(4, `*`(`^`(z, 8))), `*`(5, `*`(`^`(z, 9))), `*`(8, `*`(`^`(z, 10))), `*`(14, ...
series(`+`(z, `^`(z, 2), `^`(z, 3), `^`(z, 4), `*`(2, `*`(`^`(z, 5))), `*`(2, `*`(`^`(z, 6))), `*`(3, `*`(`^`(z, 7))), `*`(4, `*`(`^`(z, 8))), `*`(5, `*`(`^`(z, 9))), `*`(8, `*`(`^`(z, 10))), `*`(14, ...
series(`+`(z, `^`(z, 2), `^`(z, 3), `^`(z, 4), `*`(2, `*`(`^`(z, 5))), `*`(2, `*`(`^`(z, 6))), `*`(3, `*`(`^`(z, 7))), `*`(4, `*`(`^`(z, 8))), `*`(5, `*`(`^`(z, 9))), `*`(8, `*`(`^`(z, 10))), `*`(14, ...