Bonjour à tous,
Avant toute chose, mon problème n'est pas vraiment lié au mathématiques mais plutôt à un problème lié à Mathématica(c'est ce que je pense en tout cas).
Mon problème est le suivant:Je possède un demi-cylindre et un plan d'équation sécant avec le demi-cylindre et je cherche à calculer le volume correspondant à la partie du demi cylindre situé en dessous de ce plan en fonction de l'angle d'inclinaison T entre mon cylindre et mon plan. Les paramètres L1 et R correspondent respectivement à la longueur et au rayon de mon demi-cylindre. Pour ce faire voici ma démarche:
J'ai tout d'abord définie mon demi cylindre à l'aide d'un paramètre t (y[t] := R Sin[t];
z[t] := -R Cos[t]). Réciproquement, je peux donc définir la fonction suivante:t[z] :=ArcCos[-z/R].
Ensuite, j'ai défini l'air, à l'aide de ce même paramètre t, correspond à l'air d'un demi cercle sécant avec une droite horizontal dont les points d'intersection ont pour coordonnée z[t]:
A[t] := 2*Integrate[-z[j] Derivative[1, 0][y][j], {j, 0, t}] +
2*y[t, R]*z[t, R]
Cette fonction me donne donc l'aire en fonction de t, or je la souhaitais en fonction de x. J'ai donc défini l'équation de notre plan( zd[x_, T_]: = Tan[T] (x - H/Sin[T]) ) qui me permet d'obtenir l'air d'une coupe du cylindre en fonction de x.
Pour finir, et afin d'obtenir mon volume, j'intègre mon air entre X1 et X2(correspondant aux deux abscisses extremum de mon volume).
Je n'ai pas réussi à insérer une image afin d'expliquer mes propos plus clairement, veuillez m'excuser.
Il me paraissait essentiel d'expliquer tout mon problème avant de vous demander conseille(même si cela peut paraître long).
Donc voici maintenant mon programme sous Mathematica, qui reprend ce qui a été exposé plus haut:
R = 1;
H = 4;
L1 = 17;
t[z_] := If[z > 0, 0, If[z + R < 0, 0, ArcCos[-z/R]]];
y[u_, r_] := r Sin[u];
z[u_, r_] := -r Cos[u];
zd[x_, T_] :=
If[T == Pi/2, 0,
If[T == 0, R - H,
If[x < X1[T] || x > X2[T], 0, Tan[T] (x - H/Sin[T])]]];
A[x_] := 2*Integrate[-z[t, R] Derivative[1, 0][y][t, R], {t, 0, x}] +
2*y[x, R]*z[x, R];
Cas[T_] :=
If[T == 0, If[H < 0, 0, If[H > R, 5, 4]],
If[H > (L1 + R/Tan[T]) Sin[T], 5,
If[L1*Sin[T] < H && H < R/Cos[T], 4,
If[H < 0, 0,
If[H < Min[R*Cos[T], L1*Sin[T]], 1, If[H < L1*Sin[T], 2, 3]]]]]];
X1[T_] :=
If[Cas[T] == 2 || Cas[T] == 3, (H - R/Cos[T])/Sin[T] + R*Tan[T],
If[Cas[T] == 5, L1, 0]];
X2[T_] :=
If[Cas[T] == 0, 0,
If[Cas[T] == 3 || Cas[T] == 4 || Cas[T] == 5, L1, H/Sin[T]]];
Compil[j_, T_] := A[t[zd[j, T]]];
V1bis[T_] := Integrate[Compil[j, T], {j, X1[T], X2[T]}];
V1bis[0.35]
Et afin mon problème: lorsque je lance ma simulation, j'obtient des valeurs complexes de mon volume. Pourtant, les valeurs de la fonction que j'intègre semble toutes réelles d'après mes tests. Quelqu'un pourrait-il me donner une piste sur comment corriger cette erreur?
Merci d'avance,
Thomas.
