Cela fait 2 jours que je résous ce problème sans succès. disons que nous avons ce système:
le a un nombre infini de solutions quand:
pour obtenir la valeur de l’angle Theta, j’utilise cette formule:
La valeur que j’obtiens est correcte, mais seulement sur certains points, car le système n’est pas soluble. et voici à quoi ça ressemble:
la courbe rouge représente le “doit être” valeur et le bleu représente que je reçois réellement.
après avoir tracé la valeur de la sum:
voici ce que je reçois: comme vous pouvez le constater, sa courbe sinusale semble influer sur la valeur “doit être” de l’angle.
pour simuler cela, j’utilise ce programme:
#include #include int main (){ float xin =0; float yin =0; float zin =0; float A =0; float B =0; float C =0; float angle =0; float outangle =0 ; float angledeg =0; while (angledeg <=(360*3)) { angle = angledeg * M_PI/180; xin = 0.11; yin = (sin(angle) / sqrt(3)) + xin; zin = (xin - (sin(angle +(120*M_PI/180)))); A = yin - xin; B = xin - zin; C = zin - yin; outangle = atan2((A*sqrt(3)) , (B -C) ) * 180/M_PI; // 100% correct printf ("%lf \n" , outangle); angledeg++; } return 0; }
Ma question est donc la suivante: comment utiliser la valeur de sum pour ajuster la valeur résultante de “doit être” la valeur de l’angle (la courbe rouge)
METTRE À JOUR
Je ne sais pas si cela a un sens mais cela fonctionne: Suppression de sqrt (3):
yin = (sin(angle) / sqrt(3)) + xin;
Je ne comprends vraiment pas, mais ça marche bien? une idée pourquoi?
Vous pouvez considérablement simplifier la situation en considérant que
sin(t)+sin(t+120°)+sin(t+240°)=0
ce qui signifie simplement que le point central (poids) de tout sortingangle équilatéral sur le cercle unitaire est l’origine.
Ainsi
sin(t)/sqrt(3)+sin(t+120°)+sin(t+240°)=sin(t)*(1/sqrt(3)-1)
Ainsi, les seules valeurs de t=theta
permettant au système de pouvoir être résolu sont t=0°
et t=180°
.
En informatique
y=x+sin(t)/sqrt(3); z=x-sin(t+120°)
vous produisez comme valeur pour C
zy = - sin(t+120°) - sin(t)/sqrt(3)
Et ainsi
BC = 2*sin(t+120°) + sin(t)/sqrt(3) = -sin(t) + sqrt(3)*cos(t) + sin(t)/sqrt(3)
où, dans certaines attentes, vous n’attendez que le moyen terme, ce qui est vrai pour sin(t)=0
, encore pour t=0°
ou t=180°
.