Bonjour à tous,

J'essaie en vain de programmer une fonction qui me retourne les angles alpha', beta', alpha'' et beta'' définies sur l'image ci-dessous avec :

D=1 ou 2
N un entier quelconque
alpha et beta deux angles arbitraires tels que alpha+beta<90
L_xi une longueur abitraire
L_eta = L_xi *sind(alpha)/sind(beta)
tan(theta) = D*L_eta*sin(alpha+beta)/(N*L_xi-D*L_eta*cos(alpha+beta))
un angle phi qui n'est pas utilisé mais juste calculé dans cette fonction

Je devrais normalement obtenir des valeurs alpha', beta', alpha'' et beta'' prochent respectivement d'alpha et beta. Cependant ce n'est pas le cas avec mon code et j'obtiens quasiment tout le temps un beta' nul...
Après avoir retourner mon programme dans tous les sens (degrés, radians, abs()...), je ne comprends toujours pas où est mon erreur.
Quelqu'un voit-il ce qui ne va pas dans mon code.

Nom : angles.png
Affichages : 262
Taille : 53,8 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
function [alpha1,alpha2,beta1,beta2,theta,phi] = function3 
 
    alpha = 34;
    beta = 24;
    k=1;    
    L_eta = L_xi *sind(alpha)/sind(beta);
    theta = atand(D*L_eta*sind(alpha+beta)/(N*L_xi-D*L_eta*cosd(alpha+beta)));
    phi = mod((N*L_xi*cosd(theta)/k)-(D*L_eta*cosd(alpha+beta+theta)/k),360);
 
    alpha1 = acosd((e(2,1)-c(1,0)*e(1,1)-c(1,1)*e(1,0)+c(0,1))/sqrt((1-2*c(1,1)*e(1,1)+e(2,2))*(1-2*c(1,0)*e(1,0)+e(2,0))));
    alpha2 = acosd((c(1,0)*e(2,1)-c(1,0)*e(1,0)-c(1,1)*e(1,1)+1)/sqrt((1-2*c(1,1)*e(1,1)+e(2,2))*(1-2*c(1,0)*e(1,0)+e(2,0))));
 
    beta1 = acosd((e(1,2)-c(0,1)*e(1,1)-c(1,1)*e(0,1)+c(1,0))/sqrt((1-2*c(1,1)*e(1,1)+e(2,2))*(1-2*c(0,1)*e(0,1)+e(0,2)));
    beta2 = acosd((c(1,0)*e(1,2)-c(0,1)*e(0,1)-c(1,1)*e(1,1)+1)/sqrt((1-2*c(1,1)*e(1,1)+e(2,2))*(1-2*c(0,1)*e(0,1)+e(0,2))));
 
   function c = c(m,n)            % Nested in function3
    k=1;
    c = cosd((m*L_xi*cosd(theta)+n*L_eta*cosd(alpha+beta+theta))/k);
   end
 
   function e = e(m,n)            % Nested in function3
    k=1;
    e = exp((m*L_xi*sind(theta)+n*L_eta*sind(alpha+beta+theta))/k);
   end
 
end