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

5 Ansichten (letzte 30 Tage)
Niklas Kurz
Niklas Kurz am 4 Mai 2021
Bearbeitet: Niklas Kurz am 8 Mai 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 Kommentare
David Goodmanson
David Goodmanson am 6 Mai 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 am 8 Mai 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Nagasai Bharat
Nagasai Bharat am 7 Mai 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 Kommentar
Niklas Kurz
Niklas Kurz am 8 Mai 2021
Bearbeitet: Niklas Kurz am 8 Mai 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)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by