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