# 'Domain error. To compute complex results from real x, use 'acos(complex(x))' error in matlab?

122 visualizzazioni (ultimi 30 giorni)
Najmeh Eskandari il 11 Ago 2018
Commentato: superman il 15 Set 2020
hi.i want to simulate ur10 inverse kinematic and I did it.while running there is this error:
Domain error. To compute complex results from real x, use 'acos(complex(x))
how can I fix it?
the error is general and I don't know which line should be changed. there are several acos in the code .
X is the endeffector position and it can not be complex.
I have attached the Simulink file.
##### 2 CommentiMostra NessunoNascondi Nessuno
Walter Roberson il 12 Ago 2018
Change them all.
Sebastian Castro il 13 Ago 2018
Modificato: Sebastian Castro il 13 Ago 2018
Unfortunately, "changing them all" wouldn't help in this case.
It actually doesn't have to do with the input being complex, but rather the input being outside the real valued range [-1,1] of the cos function.

Accedi per commentare.

### Risposta accettata

Sebastian Castro il 13 Ago 2018
Modificato: Sebastian Castro il 13 Ago 2018
Hi Najmeh,
If you supply a value greater than 1 or smaller than -1 to the acos function, you get a complex number. Simulink seems to be complaining about that in your code.
Seems like at the very first time step, argumancos5 is exactly 1, but due to numerical issues, it's actually slightly higher than 1 which leads to your error. Computing the value argumancos5 - 1 gives me 3.1086e-15... so it's just outside the range in which the cosine is real-valued.
I limited the value of this input to the range [-1, 1] and it seems to have fixed the error:
argumancos5 = max(min(argumancos5,1),-1);
- Sebastian
##### 7 CommentiMostra 5 commenti meno recentiNascondi 5 commenti meno recenti
Aks Lyu il 11 Dic 2019
But why MATLAB does not point out which line (file) the error occures in?
superman il 15 Set 2020
Awesome！

Accedi per commentare.

### Categorie

Scopri di più su General Applications in Help Center e File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by