error using solve function

1 vue (au cours des 30 derniers jours)
studentU
studentU le 13 Mai 2015
Commenté : Torsten le 22 Mai 2015
hi,
I use the function solve to determine a variable as follows:
x = solve (cos (x) * sin (y) * cos (z) + sin (Z) = 1 ',' x ')
then I evaluated x in terms of y and z, when I replace x by the value finding the equation is not = 1!!
how can i resolve it?

Réponses (1)

Walter Roberson
Walter Roberson le 13 Mai 2015
Are x and y and z symbolic at the time you call solve? Or are y and z numeric?
If they are symbolic and you later substitute in numeric y and z to the solve() response get a numeric x, and then substitute the numeric x, y, and z into the cos (x) * sin (y) * cos (z) + sin (Z) formula, then you could get something other than 1 due to round-off error.
Also, if your y and z are square matrices of numeric values, then cos (x) * sin (y) * cos (z) would succeed but what not be what you want: you would need to evaluate
cos(x) .* sin(y) .* cos(z)
Notice the ".*" instead of "*" if you are working with vectors or matrices.
  4 commentaires
studentU
studentU le 13 Mai 2015
Modifié(e) : studentU le 13 Mai 2015
I used simplify () but the result is always diferrent 1,
However, how to limit the interval of solution; for
x = solve ('cos (x) * sin (y) * cos (z) + sin (Z) = 1 ',' x ')
i want x beteween 0° and 90° for exmple,
thank's lot,
Torsten
Torsten le 22 Mai 2015
I'd be interested what you get for x after applying "solve".
Best wishes
Torsten.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by