 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
zozo
Inscrit le: 03 Jan 2013 Messages: 125
|
Posté le: 16 Nov 2006 14:29 Sujet du message: |
|
|
Bonjour, pour moi ce n'est pas un système simple, mais bon...
En remplaçant la dernière ligne par:
solve(eqns,{theta,Ax,Ay,Bx,By,Cx,Cy});
j'ai obtenu un truc horrible à lire: il y a 3 solutions proposées dont seulement la dernière est exploitable:
op(3,[%]);
{Cy = 0., Ay = -4190.472677, theta = 1.538185391, Bx = 136.7036970,
Cx = 46.84245450, By = 4190.472677, Ax = -136.7036970}
Est-ce là la solution que vous expériez?
@+ |
|
Revenir en haut de page |
|
 |
zozo
Inscrit le: 03 Jan 2013 Messages: 125
|
Posté le: 16 Nov 2006 15:10 Sujet du message: |
|
|
Cette info manquait effectivement, ce qui change tout.
Dans ce cas, je fais une boucle en faisant varier theta de 0 à 17*Pi/45 avec un certain pas (j'ai pris Pi/45).
Pour chaque valeur de theta, on résout le sytème de façon approchée avec fsolve, et on assigne le résultat obtenu que l'on complète dans une table des résultats qui contiendra les différentes valeurs [theta,Ax,Ay,Bx,By,Cx,Cy]
Ensuite, il suffira d'extraire les couples [theta,Ax], puis [theta,Ay] etc... jusqu'à [theta,Cy] puis représenter les courbes fAx, fAy, ... , fCy de Ax, Ay, ... Cy en fonction de theta.
Code: |
#Déclaration du système
> resultats:=NULL: theta:='theta':
> for theta from 0 to evalf(17*Pi/45) by evalf(Pi/45) do
> eqns:={Ax+Bx=0,Ay+By=0,Bx*Y1-By*X1=0,Cx-Bx-F*X2/L2=0,Cy-By+F*Y2/L2=0,Cx*Y2-Cy*X2-F*r=0}:
> s:=fsolve(eqns,{Ax,Ay,Bx,By,Cx,Cy});
> if s<>NULL then
> assign(s):resultats:=resultats,[theta,Ax,Ay,Bx,By,Cx,Cy]:
> Ax:='Ax':Ay:='Ay':Bx:='Bx':By:='By':Cx:='Cx':Cy:='Cy'
> end if
> od:
> resultats:=[resultats];
resultats := [[0.06981317008, 411373.0744, 28766.00762,
-411373.0744, -28766.00762, -405367.9340, -29197.54234], [
0.1396263402, 414549.0062, 58261.06336, -414549.0062,
-58261.06336, -408675.9880, -59109.55474], [0.2094395103,
400985.7963, 85232.16219, -400985.7963, -85232.16219,
-395273.3580, -86481.00779], [0.2792526804, 380155.3750,
109007.7997, -380155.3750, -109007.7997, -374630.2938,
-110638.5167], [0.3490658505, 354540.6131, 129042.2301,
-354540.6131, -129042.2301, -349227.8679, -131034.6076], [
0.4188790206, 325520.6317, 144931.1229, -325520.6317,
-144931.1229, -320443.2981, -147263.3811], [0.4886921907,
294185.3729, 156421.1375, -294185.3729, -156421.1375,
-289364.5314, -159070.0924], [0.5585053608, 261516.3080,
163413.5260, -261516.3080, -163413.5260, -256970.9662,
-166354.7600], [0.6283185309, 228426.3750, 165961.4760,
-228426.3750, -165961.4760, -224173.4030, -169169.5109], [
0.6981317010, 195759.6656, 164261.8633, -195759.6656,
-164261.8633, -191813.7461, -167710.3369], [0.7679448711,
164278.1684, 158641.5832, -164278.1684, -158641.5832,
-160651.7604, -162303.4271], [0.8377580412, 134645.9647,
149539.4935, -134645.9647, -149539.4935, -131349.2820,
-153387.1110], [0.9075712113, 107414.7861, 137484.6567,
-107414.7861, -137484.6567, -104455.7887, -141490.1002], [
0.9773843814, 83013.16098, 123072.0724, -83013.16098,
-123072.0724, -80397.56137, -127207.2185], [1.047197551,
61740.06714, 106936.9331, -61740.06714, -106936.9331,
-59471.34955, -111173.6549], [1.117010721, 43763.51748,
89728.50794, -43763.51748, -89728.50794, -41842.97047,
-94038.84294], [1.186823891, 29124.16922, 72084.84831,
-29124.16922, -72084.84831, -27550.93093, -76441.16093]]
> fAx:=[seq([resultats[k][1],resultats[k][2]],k=1..nops(resultats))];
fAx := [[0.06981317008, 411373.0744], [0.1396263402, 414549.0062],
[0.2094395103, 400985.7963], [0.2792526804, 380155.3750],
[0.3490658505, 354540.6131], [0.4188790206, 325520.6317],
[0.4886921907, 294185.3729], [0.5585053608, 261516.3080],
[0.6283185309, 228426.3750], [0.6981317010, 195759.6656],
[0.7679448711, 164278.1684], [0.8377580412, 134645.9647],
[0.9075712113, 107414.7861], [0.9773843814, 83013.16098],
[1.047197551, 61740.06714], [1.117010721, 43763.51748],
[1.186823891, 29124.16922]]
> plot(fAx,style=line);
> fAy:=[seq([resultats[k][1],resultats[k][3]],k=1..nops(resultats))];
fAy := [[0.06981317008, 28766.00762], [0.1396263402, 58261.06336],
[0.2094395103, 85232.16219], [0.2792526804, 109007.7997],
[0.3490658505, 129042.2301], [0.4188790206, 144931.1229],
[0.4886921907, 156421.1375], [0.5585053608, 163413.5260],
[0.6283185309, 165961.4760], [0.6981317010, 164261.8633],
[0.7679448711, 158641.5832], [0.8377580412, 149539.4935],
[0.9075712113, 137484.6567], [0.9773843814, 123072.0724],
[1.047197551, 106936.9331], [1.117010721, 89728.50794],
[1.186823891, 72084.84831]]
> plot(fAy,style=line);
|
etc... jusqu'à fCy de la même façon.
Est-ce que çà convient?
A+ |
|
Revenir en haut de page |
|
 |
zozo
Inscrit le: 03 Jan 2013 Messages: 125
|
Posté le: 16 Nov 2006 15:43 Sujet du message: |
|
|
Comme on n'arrive pas à obtenir les formules explicites en fonction de theta, on aura du mal à les dériver, sauf peut etre par des méthodes d'approximation du style (f(x+h)-f(x))/h pour h très petit.
A+ |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|