Modélisation Bowling Maple

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Hyprium
Messages: 3
Enregistré le: 08 Juin 2014, 10:03

Modélisation Bowling Maple

par Hyprium » 08 Juin 2014, 10:12

Bonjour à tous,

J'ai développé un algorithme sous Maple pour étudier le mouvement des quilles et de la boule d'une partie de Bowling.

Malheureusement, je n'arrive pas à dire à Maple ce que je veux et je reste bloqué.

En effet, dans la partie des équations, la fonction solve ne résout rien vu que les expressions ne se remplacent pas par leur valeur respective, je ne comprends pas pourquoi.

J'espère que parmi vous, certains apporteront des réponses à mon problème.

Cordialement,

Hyprium

> restart;
with(linalg):
with(LinearAlgebra):

Warning, the protected names norm and trace have been redefined and unprotected



Warning, the assigned name GramSchmidt now has a global binding


> Bowling:=proc(lambda)
local M:

v[x]:=(n,i)->v[n,i,x]:
v[y]:=(n,i)->v[n,i,y]:
p[x]:=(n,i)->p[n,i,x]:
p[y]:=(n,i)->p[n,i,y]:
v:=(n,i)->sqrt(v[x](n,i)^2+v[y](n,i)^2):
e:=(n,k,l)->:
f:=(n,k)->:

for z from 0 to 10 do
theta:=lambda*(1-z/10):
n:=0:

M:=4.5359237:
m:=1.530:
v[b0]:=20/3.6:
alpha:=3.14159265359/6:
d:=0.3040:
r:=0.0575:
R:=0.11:

p[x](0,0):=(r+R)*sin(theta):
p[y](0,0):=-(r+R)*cos(theta):
p[x](0,1):=0:
p[y](0,1):=0:
p[x](0,2):=-d*sin(alpha):
p[y](0,2):=d*cos(alpha):
p[x](0,3):=d*sin(alpha):
p[y](0,3):=d*cos(alpha):
p[x](0,4):=-2*d*sin(alpha):
p[y](0,4):=2*d*cos(alpha):
p[x](0,5):=0:
p[y](0,5):=2*d*cos(alpha):
p[x](0,6):=2*d*sin(alpha):
p[y](0,6):=2*d*cos(alpha):
p[x](0,7):=-3*d*sin(alpha):
p[y](0,7):=3*d*cos(alpha):
p[x](0,8):=-d*sin(alpha):
p[y](0,8):=3*d*cos(alpha):
p[x](0,9):=d*sin(alpha):
p[y](0,9):=3*d*cos(alpha):
p[x](0,10):=3*d*sin(alpha):
p[y](0,10):=3*d*cos(alpha):

v[x](0,0):=-sin(theta)*(4.154285046*cos(theta)-.3634438432e-16*(13065256851622140924785493990079249*cos(theta)^2-11578741724189361656109004298179249+11578741726320212017212603990079249*sin(theta)^2)^(1/2))+5.555555555*cos(theta)*sin(theta):
v[y](0,0):=cos(theta)*(4.154285046*cos(theta)-.3634438432e-16*(13065256851622140924785493990079249*cos(theta)^2-11578741724189361656109004298179249+11578741726320212017212603990079249*sin(theta)^2)^(1/2))+5.555555555*sin(theta)^2:
v[x](0,1):=-(4.15428504*cos(theta)+.1077485975e-15*(13065256851622140924785493990079249*cos(theta)^2-11578741724189361656109004298179249+11578741726320212017212603990079249*sin(theta)^2)^(1/2))*sin(theta):
v[y](0,1):=4.15428504*cos(theta)+.1077485975e-15*(13065256851622140924785493990079249*cos(theta)^2-11578741724189361656109004298179249+11578741726320212017212603990079249*sin(theta)^2)^(1/2):
v[x](0,2):=0:
v[y](0,2):=0:
v[x](0,3):=0:
v[y](0,3):=0:
v[x](0,4):=0:
v[y](0,4):=0:
v[x](0,5):=0:
v[y](0,5):=0:
v[x](0,6):=0:
v[y](0,6):=0:
v[x](0,7):=0:
v[y](0,7):=0:
v[x](0,8):=0:
v[y](0,8):=0:
v[x](0,9):=0:
v[y](0,9):=0:
v[x](0,10):=0:
v[y](0,10):=0:

for i from 1 to 9 do
for j from i+1 to 10 do

eq[i,j]:=sqrt(((-v[x](n,i)+v[x](n,j))*t+p[x](n,i)+p[x](n,j))^2+((-v[y](n,i)+v[y](n,j))*t+p[y](n,i)+p[y](n,j))^2)-2*r:

s[i,j]:=solve(eq[i,j],t):
if Im(s[i,j][1])=0 then q1[i,j]:=s[i,j][1]: q2[i,j]:=s[i,j][2]: else q1[i,j]:=0: q2[i,j]:=0: fi:
u[i,j]:=min(q1[i,j],q2[i,j]):
if u[i,j]0 then v[i,j]:=u[i,j]: else v[i,j]:=1000000: fi:

od:
od:

for i from 1 to 10 do

eq[0,i]:=sqrt(((-v[x](n,0)+v[x](n,i))*t+p[x](n,0)+p[x](n,i))^2+((-v[y](n,0)+v[y](n,i))*t+p[y](n,0)+p[y](n,i))^2)-(r+R):

s[0,i]:=solve(eq[0,i],t):
if Im(s[0,i][1])=0 then q3[0,i]:=s[0,i][1]: q4[0,i]:=s[0,i][2]: else q3[0,i]:=0: q4[0,i]:=0: fi:
w[0,i]:=min(q3[0,i],q4[0,i]):
if w[0,i]0 then x[0,i]:=w[0,i]: else x[0,i]:=1000000: fi:

od:

a:=min(seq(seq(v[i,j],j=i+1..10),i=1..9),seq(x[0,i],i=1..10)):

for i from 1 to 9 do
for j from i+1 to 10 do
if v[i,j]=a then b:=i: c:=j: fi:
od:
od:

for i from 1 to 10 do
if x[0,i]=a then b:=i: c:=0: fi:
od:

tchoc:=a:

if c0

then

for i from 1 to b-1 do
v[x](n+1,i):=v[x](n,i):
v[y](n+1,i):=v[y](n,i):
p[x](n+1,i):=p[x](n,i)+(v[x](n+1,i))*tchoc:
p[y](n+1,i):=p[y](n,i)+(v[y](n+1,i))*tchoc:
od:
for i from b+1 to c-1 do
v[x](n+1,i):=v[x](n,i):
v[y](n+1,i):=v[y](n,i):
p[x](n+1,i):=p[x](n,i)+(v[x](n+1,i))*tchoc:
p[y](n+1,i):=p[y](n,i)+(v[y](n+1,i))*tchoc:
od:
for i from c+1 to 10 do
v[x](n+1,i):=v[x](n,i):
v[y](n+1,i):=v[y](n,i):
p[x](n+1,i):=p[x](n,i)+(v[x](n+1,i))*tchoc:
p[y](n+1,i):=p[y](n,i)+(v[y](n+1,i))*tchoc:
od:
v[x](n+1,0):=v[x](n,0):
v[y](n+1,0):=v[y](n,0):
p[x](n+1,0):=p[x](n,0)+v[x](n+1,0)*tchoc:
p[y](n+1,0):=p[y](n,0)+v[y](n+1,0)*tchoc:
p[x](n+1,b):=p[x](n,b)+v[x](n,b)*tchoc:
p[y](n+1,b):=p[y](n,b)+v[y](n,b)*tchoc:
p[x](n+1,c):=p[x](n,c)+v[x](n,c)*tchoc:
p[y](n+1,c):=p[y](n,c)+v[y](n,c)*tchoc:

eq1:=v[x](n,b)+v[x](n,c)-v[x](n+1,b)-v[x](n+1,c):
eq2:=v[y](n,b)+v[y](n,c)-v[y](n+1,b)-v[y](n+1,c):
eq3:=v(n,b)^2+v(n,c)^2-v(n+1,b)^2-v(n+1,c)^2:
eq4:=DotProduct(CrossProduct(-e(n,b,c)/2,f(n,b))+CrossProduct(e(n,b,c)/2,f(n,c))-CrossProduct(-e(n,b,c)/2,f(n+1,b))-CrossProduct(e(n,b,c)/2,f(n+1,c)),):

solve({eq1,eq2,eq3,eq4},{v[x](n+1,b),v[y](n+1,b),v[x](n+1,c),v[y](n+1,c)}):
assign(%):

else

for i from 1 to b-1 do
v[x](n+1,i):=v[x](n,i):
v[y](n+1,i):=v[y](n,i):
p[x](n+1,i):=p[x](n,i)+(v[x](n+1,i))*tchoc:
p[y](n+1,i):=p[y](n,i)+(v[y](n+1,i))*tchoc:
od:
for i from b+1 to 10 do
v[x](n+1,i):=v[x](n,i):
v[y](n+1,i):=v[y](n,i):
p[x](n+1,i):=p[x](n,i)+(v[x](n+1,i))*tchoc:
p[y](n+1,i):=p[y](n,i)+(v[y](n+1,i))*tchoc:
od:
p[x](n+1,0):=p[x](n,0)+v[x](n,0)*tchoc:
p[y](n+1,0):=p[y](n,0)+v[y](n,0)*tchoc:
p[x](n+1,b):=p[x](n,b)+v[x](n,b)*tchoc:
p[y](n+1,b):=p[y](n,b)+v[y](n,b)*tchoc:

eq1:=M*v[x](n,0)+m*v[x](n,b)-M*v[x](n+1,0)-m*v[x](n+1,b):
eq2:=M*v[y](n,0)+m*v[y](n,b)-M*v[y](n+1,0)-m*v[y](n+1,b):
eq3:=M*v(n,0)^2+m*v(n,b)^2-M*v(n+1,0)^2-m*v(n+1,b)^2:
eq4:=DotProduct(M*CrossProduct(-e(n,0,b)*m/(M+m),f(n,0))+m*CrossProduct(M*(M+m)*e(n,0,b)/2,f(n,b))-M*CrossProduct(-m/(M+m)*e(n,0,b)/2,f(n+1,0))-m*CrossProduct(M*(M+m)*e(n,0,b)/2,f(n+1,b)),):

solve({eq1,eq2,eq3,eq4},{v[x](n+1,0),v[y](n+1,0),v[x](n+1,b),v[y](n+1,b)}):
assign(%):

fi:

while tchoc Bowling(3.14159265359/2);

Error, (in assign) invalid left hand side in assignment



Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 08 Juin 2014, 12:34

Il faut mieux organisé ton code. Les constantes en dehors, écrire des plusieurs procédure, commenter, etc ...

Hyprium
Messages: 3
Enregistré le: 08 Juin 2014, 10:03

par Hyprium » 08 Juin 2014, 12:41

Je sais que mon code est compliqué, l'essentiel, c'est que j'arrive à m'y retrouver.

Je suis juste bloqué au niveau des 2 solve, lors du calcul, il ne remplace pas les vitesses v[x](n,i) par leur valeur mais affiche juste v[x](0,0) par exemple, alors que cette valeur est connue...

Alors que si je lui demande d'afficher v[x](0,0) juste avant les 4 équations et le solve, il m'affiche sa valeur.

Avez-vous une idée du problème ?

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 08 Juin 2014, 15:31

Hyprium a écrit:l'essentiel, c'est que j'arrive à m'y retrouver.


Pense un peu aux autres. Si tu met tout le code c'est pour qu'on le regarde, on peut peut-être trouver d'autre erreur.
Ou alors tu met uniquement le code ou ça plante.

Hyprium
Messages: 3
Enregistré le: 08 Juin 2014, 10:03

par Hyprium » 08 Juin 2014, 15:58

Code avec commentaire en rouge

J'ai modifié mon code, mais il ne fonctionne toujours pas, les modifications sont présentes ici

> restart;
with(linalg):
with(LinearAlgebra):

Warning, the protected names norm and trace have been redefined and unprotected



Warning, the assigned name GramSchmidt now has a global binding


> Bowling:=proc(lambda)
local M:

#je défini ici toutes les fonctions dont j'aurai besoin par la suite#

v[x]:=(n,i)->v[n,i,x]: #vitesse après n selon x#
v[y]:=(n,i)->v[n,i,y]: #vitesse après n selon y#
p[x]:=(n,i)->p[n,i,x]: #position après n selon x#
p[y]:=(n,i)->p[n,i,y]: #position après n selon y#
v:=(n,i)->sqrt(v[x](n,i)^2+v[y](n,i)^2): #norme de mon vecteur vitesse#
e:=(n,k,l)->: #vecteur position#
f:=(n,k)->: #vecteur vitesse#
> eq1:=(n,i,j)->v[x](n,i)+v[x](n,j)-v[x](n+1,i)-v[x](n+1,j): #équations de conservation#
> eq2:=(n,i,j)->v[y](n,i)+v[y](n,j)-v[y](n+1,i)-v[y](n+1,j):
> eq3:=(n,i,j)->v(n,i)^2+v(n,j)^2-v(n+1,i)^2-v(n+1,j)^2:
> eq4:=(n,i,j)->DotProduct(CrossProduct(-e(n,i,j)/2,f(n,i))+CrossProduct(e(n,i,j)/2,f(n,j))-CrossProduct(-e(n,i,j)/2,f(n+1,i))-CrossProduct(e(n,i,j)/2,f(n+1,j)),):
> eq5:=(n,i)->M*v[x](n,0)+m*v[x](n,i)-M*v[x](n+1,0)-m*v[x](n+1,i):
> eq6:=(n,i)->M*v[y](n,0)+m*v[y](n,i)-M*v[y](n+1,0)-m*v[y](n+1,i):
> eq7:=(n,i)->M*v(n,0)^2+m*v(n,i)^2-M*v(n+1,0)^2-m*v(n+1,i)^2:
> eq8:=(n,i)->DotProduct(M*CrossProduct(-e(n,0,i)*m/(M+m),f(n,0))+m*CrossProduct(M*(M+m)*e(n,0,i)/2,f(n,i))-M*CrossProduct(-m/(M+m)*e(n,0,i)/2,f(n+1,0))-m*CrossProduct(M*(M+m)*e(n,0,i)/2,f(n+1,i)),):

for z from 0 to 10 do #je fais varier theta pour voir combien de quilles je renverse selon sa valeur#
theta:=lambda*(1-z/10):
n:=0: #j'initialise ma procédure#

M:=4.5359237: #données#
m:=1.530:
v[b0]:=20/3.6:
alpha:=3.14159265359/6:
d:=0.3040:
r:=0.0575:
R:=0.11:

p[x](0,0):=(r+R)*sin(theta): #position initiale de chaque quille (de 1 à 10) et de la boule(0)#
p[y](0,0):=-(r+R)*cos(theta):
p[x](0,1):=0:
p[y](0,1):=0:
p[x](0,2):=-d*sin(alpha):
p[y](0,2):=d*cos(alpha):
p[x](0,3):=d*sin(alpha):
p[y](0,3):=d*cos(alpha):
p[x](0,4):=-2*d*sin(alpha):
p[y](0,4):=2*d*cos(alpha):
p[x](0,5):=0:
p[y](0,5):=2*d*cos(alpha):
p[x](0,6):=2*d*sin(alpha):
p[y](0,6):=2*d*cos(alpha):
p[x](0,7):=-3*d*sin(alpha):
p[y](0,7):=3*d*cos(alpha):
p[x](0,8):=-d*sin(alpha):
p[y](0,8):=3*d*cos(alpha):
p[x](0,9):=d*sin(alpha):
p[y](0,9):=3*d*cos(alpha):
p[x](0,10):=3*d*sin(alpha):
p[y](0,10):=3*d*cos(alpha):

v[x](0,0):=-sin(theta)*(4.154285046*cos(theta)-.3634438432e-16*(13065256851622140924785493990079249*cos(theta) ^2-11578741724189361656109004298179249+11578741726320 212017212603990079249*sin(theta)^2)^(1/2))+5.555555555*cos(theta)*sin(theta): #vitesse initiale de chaque quille et de la boule sachant que l'instant initiale est fixé comme l'instant de l'impact entre la boule et la quille 1#
v[y](0,0):=cos(theta)*(4.154285046*cos(theta)-.3634438432e-16*(13065256851622140924785493990079249*cos(theta) ^2-11578741724189361656109004298179249+11578741726320 212017212603990079249*sin(theta)^2)^(1/2))+5.555555555*sin(theta)^2:
v[x](0,1):=-(4.15428504*cos(theta)+.1077485975e-15*(13065256851622140924785493990079249*cos(theta) ^2-11578741724189361656109004298179249+11578741726320 212017212603990079249*sin(theta)^2)^(1/2))*sin(theta):
v[y](0,1):=4.15428504*cos(theta)+.1077485975e-15*(13065256851622140924785493990079249*cos(theta) ^2-11578741724189361656109004298179249+11578741726320 212017212603990079249*sin(theta)^2)^(1/2):
v[x](0,2):=0:
v[y](0,2):=0:
v[x](0,3):=0:
v[y](0,3):=0:
v[x](0,4):=0:
v[y](0,4):=0:
v[x](0,5):=0:
v[y](0,5):=0:
v[x](0,6):=0:
v[y](0,6):=0:
v[x](0,7):=0:
v[y](0,7):=0:
v[x](0,8):=0:
v[y](0,8):=0:
v[x](0,9):=0:
v[y](0,9):=0:
v[x](0,10):=0:
v[y](0,10):=0:

#dans cette partie, je calcul la distance séparant chaque quille entre elles et je cherche s'il existe un temps tel que la distance séparant les deux centres d'inertie des quilles soit exactement égal à 2*r (rayon d'une quille), s'il en existe un, alors je le garde en mémoire, sinon, je le fixe nul, je fais de même entre la boule avec toutes les quilles, le but étant de connaître le temps minimal du prochain choc#

for i from 1 to 9 do
for j from i+1 to 10 do

eq[i,j]:=sqrt(((-v[x](n,i)+v[x](n,j))*t+p[x](n,i)+p[x](n,j))^2+((-v[y](n,i)+v[y](n,j))*t+p[y](n,i)+p[y](n,j))^2)-2*r:

s[i,j]:=solve(eq[i,j],t):
if Im(s[i,j][1])=0 then q1[i,j]:=s[i,j][1]: q2[i,j]:=s[i,j][2]: else q1[i,j]:=0: q2[i,j]:=0: fi:
u[i,j]:=min(q1[i,j],q2[i,j]):
if u[i,j]0 then v[i,j]:=u[i,j]: else v[i,j]:=1000000: fi:

od:
od:

for i from 1 to 10 do

eq[0,i]:=sqrt(((-v[x](n,0)+v[x](n,i))*t+p[x](n,0)+p[x](n,i))^2+((-v[y](n,0)+v[y](n,i))*t+p[y](n,0)+p[y](n,i))^2)-(r+R):

s[0,i]:=solve(eq[0,i],t):
if Im(s[0,i][1])=0 then q3[0,i]:=s[0,i][1]: q4[0,i]:=s[0,i][2]: else q3[0,i]:=0: q4[0,i]:=0: fi:
w[0,i]:=min(q3[0,i],q4[0,i]):
if w[0,i]0 then x[0,i]:=w[0,i]: else x[0,i]:=1000000: fi:

od:

a:=min(seq(seq(v[i,j],j=i+1..10),i=1..9),seq(x[0,i],i=1..10)):

for i from 1 to 9 do
for j from i+1 to 10 do
if v[i,j]=a then b:=i: c:=j: fi:
od:
od:

for i from 1 to 10 do
if x[0,i]=a then b:=i: c:=0: fi:
od:

tchoc:=a:

#une fois le temps du prochain choc obtenu, je récupère les numéros des solides qui rentrent en contact et suivant le type d’interaction (quille/quille ou boule/quille), je résous un système de quatre équations à quatre inconnus pour obtenir les nouvelles vitesses de mes solides, j'en profite aussi pour réinitialiser les vitesses et positions des autres solides#

u:=n+1:
>
> if c0
>
> then
>
> if b1 and c10 then
> for i from 1 to b-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> for i from b+1 to c-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> for i from c+1 to 10 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> if b=1 and c=10 then
> for i from b+1 to c-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> if b=1 and c10 then
> for i from b+1 to c-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> for i from c+1 to 10 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> if b1 and c=10 then
> for i from 1 to b-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> for i from b+1 to c-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> v[x]:=(u,0)->v[x](u-1,0):
> v[y]:=(u,0)->v[y](u-1,0):
> p[x]:=(u,0)->[x](u-1,0)+v[x](u,0)*tchoc:
> p[y]:=(u,0)->[y](u-1,0)+v[y](u,0)*tchoc:
> p[x]:=(u,b)->p[x](u,b)+v[x](u-1,b)*tchoc:
> p[y]:=(u,b)->p[y](u,b)+v[y](u-1,b)*tchoc:
> p[x]:=(u,c)->p[x](u,c)+v[x](u-1,c)*tchoc:
> p[y]:=(u,c)->p[y](u,c)+v[y](u-1,c)*tchoc:
>
> solve({eq1(u-1,b,c),eq2(u-1,b,c),eq3(u-1,b,c),eq4(u-1,b,c)},{v[x](u,b),v[y](u,b),v[x](u,c),v[y](u,c)}):
> assign(%):
>
> else
>
> if b1 and b10 then
> for i from 1 to b-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> for i from b+1 to 10 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> if b=1 then
> for i from b+1 to 10 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> if b=10 then
> for i from 1 to b-1 do
> v[x]:=(u,i)->v[x](u-1,i):
> v[y]:=(u,i)->v[y](u-1,i):
> p[x]:=(u,i)->p[x](u-1,i)+(v[x](u,i))*tchoc:
> p[y]:=(u,i)->p[y](u-1,i)+(v[y](u,i))*tchoc:
> od:
> fi:
>
> p[x]:=(u,0)->p[x](u-1,0)+v[x](u-1,0)*tchoc:
> p[y]:=(u,0)->p[y](u-1,0)+v[y](u-1,0)*tchoc:
> p[x]:=(u,0)->p[x](u-1,b)+v[x](u-1,b)*tchoc:
> p[y]:=(u,0)->p[y](u-1,b)+v[y](u-1,b)*tchoc:
>
> solve({eq5(u-1,b),eq6(u-1,b),eq7(u-1,b),eq8(u-1,b)},{v[x](u,0),v[y](u,0),v[x](u,b),v[y](u,b)}):
> assign(%):
>
> fi:

while tchoc Bowling(3.14159265359/2);

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 09 Juin 2014, 02:40

A mon avis ton return est déjà mal placé.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 38 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite