Re: Adding Vectors -- Newbie help please
- To: mathgroup at smc.vnet.net
- Subject: [mg52038] Re: Adding Vectors -- Newbie help please
- From: David Bailey <dave at Remove_Thisdbailey.co.uk>
- Date: Mon, 8 Nov 2004 03:13:19 -0500 (EST)
- References: <cmfc9b$7k3$1@smc.vnet.net> <cmhut5$ppb$1@smc.vnet.net> <cmklrk$jm3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
motz art wrote:
> 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
>
>
I know what you mean, and people do sometimes react like that, but I
have several comments.
1) A very good strategy is to have some code that you execute every
time you use Mathematica. You can arrange to do that automatically, or
simply execute some code in a notebook each time you start work.
Remember, a calculator can do a few things neatly, but then you hit a
brick wall!
2) I would suggest that you do not store r/theta values as lists
because it is too easy to make a mistake and use them as x/y vectors.
Why not write things like rect[220,225]+rect[100,16] - never even
storing the intermediate polar form.
3) Another option, which is probably even neater is to turn your
r/theta values into complex numbers and work that way.
4) Mathematica leaves things exact where possible - which is obviously
why you are using //N - but this is a valuable feature of Mathematica,
not a shortcoming! If your voltages were not written as integers you
would not have that problem. If you want your rect function to always
return real values, why not define it with the N as part of the function?
I hope that helps,
David Bailey