Funzioni a tratti Matlab - Differenza di arcotangenti:

La somma/sottrazione di arcotangenti segue la formula che ho riportato in immagine [nel mio caso ho arctan(x1)-arctan(x2)], io per poter rappresentare degli sfasamenti devo diagrammare la funzione Y (ottenuta per differenti casi) in Matlab. L'ho fatto utilizzando il seguente codice:
x1=(c2*w(i))/(k2-((w(i)^2)*m2));
x2=ImDen/ReDen (dove ImDen e ReDen sono funzioni definite in precedenza )
(con x1 e x2 relazioni che variano ma sempre ottenute in funzione di w,variabile rispetto alla quale diagrammo la fase,ovviamente associandole un dato vettore)
phiX1(i)=-atan((1+(x1*x2))/(x1-x2))
diagrammando di volta in volta l'andamento di x1*x2 si può capire se esso assume un valore che sia <,> o = a 1 e quindi variare la funzione caso per caso.
Non molto elegante forse come soluzione me ne rendo conto ma, efficace fino a quando non mi è capitato di incappare nel caso in cui x1*x2 determina un repentino cambio di valore ovvero passa da <1 a >1 immediatamente,ciò ovviamente determina nell'andamento della funzione Y diagrammata un salto pari a pi greco.
Come posso risolvere questo problema? Grazie.
Risposte
ciao red, sinceramente è un casino di tempo che non usa matlab ma di una cosa sono certo avevo anche io di questi problemi con l'arcotangente perciò l'unica cosa che mi viene in mente è di studiare l'help di matlab che è fatto benissimo, mi sembra poi ci fosse anche la funzione atan2 che lo calcola in maniera diversa che ti potrebbe aiutare ma adesso non vorrei confondermi con qualche altro linguaggio