How to get norm (magnitude) of a vector the simple way?

4 visualizaciones (últimos 30 días)
Niklas Kurz
Niklas Kurz el 4 de Mayo de 2021
Editada: Niklas Kurz el 8 de Mayo de 2021
I just want to get the norm of
syms phi the;
c = [-cos(phi)*sin(the)^2;-sin(phi)*sin(the)^2; - cos(the)*sin(the)*cos(phi)^2 - cos(the)*sin(the)*sin(phi)^2]
norm(c,2)
isn't really simplifying anything
If I type it manually:
simplify(sqrt(cos(phi)^2*sin(the)^4+sin(phi)^2*sin(the)^4+sin(the)^2*cos(the)^2))
I get a simple answere:
(sin(the)^2)^(1/2)
  5 comentarios
David Goodmanson
David Goodmanson el 6 de Mayo de 2021
Hi Niklas,
If your last two vector elements were
- cos(the)*sin(the)*cos(phi) - cos(the)*sin(the)*sin(phi)
i.e. cos(phi) and sin(phi) not squared, then you would get what you say. But since cos(phi) and sin(phi) are squared, you don't.
Niklas Kurz
Niklas Kurz el 8 de Mayo de 2021
I'm sorry for forgetting the simicolons in c. It might have been hard for you to reproduce what I was trying to create.

Iniciar sesión para comentar.

Respuesta aceptada

Nagasai Bharat
Nagasai Bharat el 7 de Mayo de 2021
Hi,
From the documentation of norm and simplify you could find the usage of both these functions. norm would be used to calculate the norm of a vector/matrix but not for an expression. simpify would be used in the simplification of an algebric expression.
  1 comentario
Niklas Kurz
Niklas Kurz el 8 de Mayo de 2021
Editada: Niklas Kurz el 8 de Mayo de 2021
well, it actually works if u were to incorporate some assumptions:
assume(phi>0);assume(the>0); assume(phi,'real'); assume(the,'real')
then, under these conditions
simplify(norm(c))
will simplify a lot (actually >0 not necessary)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by