Bonjour tout le monde!

Donc, voilà je vous explique mon problème, je viens de commencer un stage et je travaille avec le langage Matlab. Mon tuteur m'a demandé de réaliser pour commencer un petit programme qui va réaliser des courbes des angles (alfa et beta) en fonction des cordonnées d'un point M en X et Y.

Je précise que tout les paramètres utilisés sont dans une fonction.

Le problème est dans les résultat, je pense vraiment qu'ils sont faux, quand je fais les calcules avec une calculatrice j'ai pas le même résultat, j'ai de grand doute là dessus et je suis bloqué ...

j'ai fixé le d0 à 50

voilà mon code, si quelqu'un pourrait bien m'aider, ça serait génial ^^

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
28
29
30
 
P = Parametre_PositionAngle();      %appel de la fonction
 
angle_A = P.angle_A;               %angle_A=[45:135]
angle_B = P.angle_B;               %angle_B=[45:135]
d0 = P.d0;
Dis_limit_min = P.Dis_limit_min;
Dis_limit_max = P.Dis_limit_max;
 
 
 
%2)Cordonnées du point M en variant alfa :    
%a)Calculer les cordonnées : 
%varier l'angle alfa quand bete est fixe 
c=1;   %Compteur 
angle_B_fix = deg2rad(90);           %fixer l'angle beta (en radian) 
Mx1=[];
My1=[];
v=1;
for i = angle_A                           %parcours du vecteur alfa [45:135] (notamment en radian) 
    Xm = d0*tan(angle_B_fix)/(tan(angle_A(c))+tan(angle_B_fix));
    Ym = ((d0*tan(angle_A(c)))*tan(angle_B_fix))/(tan(angle_A(c))+tan(angle_B_fix));
    Dm = sqrt((Xm^2+Ym^2));      %calcule de la distance 
    if (Dm <Dis_limit_max) && (Dm >Dis_limit_min)                            %doivent être compris entre 150cm et 1000cm pour que le point M puisse être vu
            My1(v)=Ym;                                             %stocker les cordonnées Y
            Mx1(v)=Xm;                                          %stocker les cordonnées en X
            v=v+1;
    end 
    c=c+1;
end