MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Adding Vectors -- Newbie help please

  • To: mathgroup at smc.vnet.net
  • Subject: [mg52042] Re: [mg52023] Re: Adding Vectors -- Newbie help please
  • From: "David Park" <djmp at earthlink.net>
  • Date: Mon, 8 Nov 2004 03:13:26 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Mathematica is not so much a toolbox for doing mathematica but a metatoolbox
for making the tools to do the mathematics that applies to your specific
application. This means that one will almost always have to write
definitions and routines to make Mathematica work efficiently for oneself.

This is a beautiful example. One might think that Mathematica would have a
routine to do this. But there are millions of similar routines that might
apply to this and other applications. You want to input in degrees, someone
else in radians. Then aren't there other units of angular measure, like
multiples of 90 degrees, or Arc Minutes and Arc Seconds? Maybe someone wants
{voltage, degrees, minutes, seconds}. Or maybe they want voltage last on the
list.

So just build up the routines that you need. Here are some possible routines
for your application. Put them in a Routines Section in your notebook. Maybe
later you might even make a package.

RectangularToPolar[{x_, y_}] /; x == 0 \[And] y == 0 := {0, 0}
RectangularToPolar[{x_, y_}] := {Sqrt[x^2 + y^2], ArcTan[x, y]180/Pi}
PolarToRectangular[{r_, theta_}] := {r Cos[theta Pi/180],
      r Sin[theta Pi/180]};

PolarAdd[voltages : {_, _} ...] :=
  Fold[RectangularToPolar[
        PolarToRectangular[#1] + PolarToRectangular[#2]] &, {0,
      0}, {voltages}]

Now, having defined the routines they are easy to use.

v1 := {220.0, 225};
v2 := {100.0, 16};
PolarAdd[v1, v2]
{141.127, -114.908}

PolarAdd[{220., 0}, {220., 30}, {220., 60}]
{601.051, 30.}

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/




From: motz art [mailto:music at heart.com]
To: mathgroup at smc.vnet.net


Ok; but I was hoping that there is a simpler way than the
following method  to add  two ac voltage vectors (for example):

                               (220V, 225 degrees)
                               (100V, 16 degrees)

Clear[r, x, y, Theta, rect, polar]

rect[r_,Theta_] := { r Cos[Theta Pi/180] , r  Sin[Theta Pi/180]}
polar[x_, y_] := {Sqrt[x^2 + y^2], ArcTan[x, y]180/Pi}

(* Input vectors here *)
v1 := {220, 225};
v2 := {100, 16};

r1:= rect[v1[[1]], v1[[2]] ] // N;
r2:= rect[v2[[1]], v2[[2]] ] // N;
rt := p1 + p2

polar[rt[[1]], rt[[2]]] // N

This just seems so cumbersome, especially when compared to a
scientific calculator.



On Sat, 6 Nov 2004 07:36:05 +0000 (UTC), David Bailey
<dave at Remove_Thisdbailey.co.uk> wrote:

>motz art wrote:
>> Mathematica v5: How can I input vectors in polar form and
>> rectangular form?
>>
>> Example:
>>
>> a:= (r1, theta1) + (r2, theta2)  Polar form.
>>
>> b:= (re1 , j* im1) + (re2, j*im2) Rectangular form
>>
>> I know this should be pretty basic, but I haven't  found examples
>> of this kind of input.
>>
>> I would guess it would be something like:
>>
>>           Polar[magnitude, phase]
>>           Rectangular[Real, Imaginary]
>>
>> but, apparently not.  (This is for  electronics engineering.)
>>
>> Thanks for any help.
>>
>>
>>
>>
>>
>You can easily write a function to convert from polar to coordinate form:
>
>FromPolar[r_, theta_] := {r Cos[theta], r Sin[theta]}
>
>Note that this assumes your angles are measured in radians. Once all
>your vectors are in coordinate form you can add/subtract then directly:
>
>{1,2}+(3,4}
>
>produces
>
>{4,6}
>
>Regards,
>
>David Bailey




  • Prev by Date: Re: need help with integration
  • Next by Date: Re: need help with integration
  • Previous by thread: Re: Adding Vectors -- Newbie help please
  • Next by thread: Re: Adding Vectors -- Newbie help please