Christopher2222

5785 Reputation

24 Badges

15 years, 275 days

MaplePrimes Activity


These are Posts that have been published by Christopher2222

It appears google doesn't know about the haversine formula.  Huh?  Well at least google can't draw the proper path for it.  I typed in google "distance from Pyongyang to NewYork city"  and got 10,916km.  Ok that's fine but then it drew a map

The map path definitely did not look right.  Pulled out my globe traced a rough path of the one google showed and I got 13 inches (where 1 inch=660miles) -> 8580 miles = 13808 km .. clearly looks like google goofed. 

So we need Maple to show us the proper path.
 

with(DataSets):
with(Builtin):
m := WorldMap();
AddPath(m, [-74.0059, 40.7128], [125.7625, 39.0392]):
Display(m):

Ok so you say that really doesn't look like the shortest path.  Well, lets visualize that on the globe projection

Display(m, projection = Globe, orientation = [-180, 0, 0])

Ah, now it is clear
Pyonyang_to_NewYork.mw

 

Here's a little procedure to fish out data from the Simbad database.  Some star names may not work if the page Simbad brings up is not completely filled, but it should work for most queries.


 

restart; gc()

Simbad := proc (a::string) local b, c, c1, c2, c3, c4, c5, d1, d2, d3, d4, d5, e1, e2, e3, e4, e5; b := StringTools:-DeleteSpace(StringTools:-Substitute(a, " ", "+")); c := HTTP:-Get(cat("http://simbad.u-strasbg.fr/simbad/sim-id?Ident=", b, "&submit=submit+id")); c1 := StringTools:-Search("Parallaxes", c[2]); c2 := StringTools:-Search("Radial", c[2]); c3 := StringTools:-Search("Spectral type:", c[2]); c4 := StringTools:-Search("Gal", c[2]); c5 := StringTools:-Search("ICRS", c[2]); d1 := c[2][c1+87 .. c1+93]; d2 := c[2][c2+96 .. c2+110]; d3 := c[2][c3+77 .. c3+90]; d4 := c[2][c4+122 .. c4+140]; d5 := c[2][c5+135 .. c5+164]; e1 := d1[() .. StringTools:-Search(" ", d1)]; e2 := d2[() .. StringTools:-SearchAll(" ", d2)[2]]; e3 := d3[() .. StringTools:-Search(" ", d3)]; e4 := convert(evalf(1000/parse(e1)), 'units', 'parsec', 'ly'); e5 := d5[() .. StringTools:-Search("\n", d5)-1]; print(cat(StringTools:-Capitalize(a), "\nDistance", e4, "lightyears", "\nRight Ascension and declination:", e5, "\nGalactic coordinates", d4, "Spectral Type:", e3, "\nRadial velocity:", e2, "\nParallax", e1, "milliarcseconds")) end proc:
 

Simbad("epsilon eridani")

"Epsilon Eridani
Distance" || (10.48936700) || "lightyears" || "
Right Ascension and declination:" || "03 32 55.84496 -09 27 29.7312" || "
Galactic coordinates" || "195.8446 -48.0513
 " || "Spectral Type:" || "K2Vk: " || "
Radial velocity:" || "V(km/s) 16.43 " || "
Parallax" || "310.94 " || "milliarcseconds"

(1)

Simbad("alpha centauri")

"Alpha Centauri
Distance" || (4.395638513) || "lightyears" || "
Right Ascension and declination:" || "14 39 36.204 -60 50 08.23" || "
Galactic coordinates" || "315.7330 -00.6809
 " || "Spectral Type:" || "G2V+K1V " || "
Radial velocity:" || "V(km/s) -22.3 " || "
Parallax" || "742 " || "milliarcseconds"

(2)

Simbad("beta hydri")

"Beta Hydri
Distance" || (24.32731987) || "lightyears" || "
Right Ascension and declination:" || "00 25 45.07036 -77 15 15.2860" || "
Galactic coordinates" || "304.7720 -39.7821
 " || "Spectral Type:" || "G0V " || "
Radial velocity:" || "V(km/s) 23.10 " || "
Parallax" || "134.07 " || "milliarcseconds"

(3)

Simbad("HR6998")

"Hr6998
Distance" || (42.67386858) || "lightyears" || "
Right Ascension and declination:" || "18 38 53.40045 -21 03 06.7368" || "
Galactic coordinates" || "012.7251 -06.7965
 " || "Spectral Type:" || "G6V " || "
Radial velocity:" || "V(km/s) 36.175 " || "
Parallax" || "76.43 " || "milliarcseconds"

(4)

``


 

Download star_database_-_simbad.mw

I found this http://www.atlasoftheuniverse.com/50lys.html and wondered how to do it in Maple. With a bit of data file editing I came up with this.  All stars within 50 light years that are visible to the naked eye.


 

restart; gc()

with(plots):

with(plottools):

a := readdata("c:/stars3.txt", [string, float, float, float]):

b := map(proc (a) options operator, arrow; [a[4], a[2], a[3]] end proc, a):

g := :-changecoords([x, y, z], [x, y, z], spherical, [r, theta, (1/2)*Pi-phi])

[r*sin((1/2)*Pi-phi)*cos(theta), r*sin((1/2)*Pi-phi)*sin(theta), r*cos((1/2)*Pi-phi)]

(1)

tt := [seq(evalf(subs({phi = convert(b[i][3]*degrees, radians), r = b[i][1], theta = convert(b[i][2]*degrees, radians)}, g)), i = 1 .. nops(b))]:

stars := pointplot3d(tt, color = red, symbol = solidcircle, symbolsize = 5)

PLOT3D(POINTS([3.141656625, -3.065814279, -0.5363263369e-1], [-5.772842366, -6.234102660, -1.330509322], [-6.747305264, -1.909294949, -7.815271235], [-9.249301903, -6.168517561, 2.566691531], [1.523622092, 11.26895208, -1.155073477], [7.242651534, -3.194389926, -8.791403287], [-3.375068769, .4084281956, -11.40403864], [-12.10139419, -4.596888455, -10.15024015], [14.09808071, 8.106755961, 3.279135277], [11.15052984, 12.25427229, -2.594493178], [-3.419769677, 17.11427532, 7.015900193], [15.04843187, -6.018943313, 10.40502857], [-10.42150660, 16.29565570, -1.726327245], [19.37009401, -.5748909284, 2.345071093], [16.86849035, 1.535152882, -10.13730432], [-3.624453569, -10.40801291, -16.40104276], [14.53624850, -8.460298659, -10.67366976], [-7.231982853, 19.97813208, -1.187881627], [9.620796689, 4.103617543, 19.18392802], [-15.19214319, 4.528974584, -17.36108506], [23.35174623, -3.365038049, .5765994043], [-6.811639233, 11.11558498, -20.54249842], [-13.85405602, 12.08566336, -15.98159795], [10.68989447, -15.38074244, -15.60587447], [-14.13228719, 19.88605992, -3.385259168], [10.27598870, 2.927192384, -22.50208215], [9.961208544, 3.724343264, -22.70260980], [9.143348930, 22.07399698, 8.320326164], [-23.59749508, -4.800964644, -10.27138571], [-5.411799069, 22.54176541, 12.37819224], [4.496828592, -12.62856178, -22.94041979], [-9.282551806, -2.504624702, 25.44407764], [-4.991684031, 4.803604874, 26.40640965], [15.07681588, 19.57764444, 11.83914952], [13.33734565, -14.86471460, 19.35333487], [10.71939792, -13.57311193, -22.05778867], [-27.91856076, -4.172456862, -1.331228297], [27.18654831, -8.676334271, -2.647341036], [-23.15604687, -10.84708496, -13.14156540], [24.14988887, 6.742770129, -14.12821003], [-18.24903039, -19.43324358, -12.03679499], [-19.47836941, -6.366512513, -21.22052411], [1.737082939, 1.648430159, 29.76381731], [-8.166167580, 1.661425568, 28.68397239], [-21.79918531, .6850669983, -20.40938762], [19.48447839, -12.08088844, -19.44250077], [9.550472834, -26.52745875, 10.65373179], [7.061767869, -26.72771859, 14.26858765], [-8.925013073, -.5615142310, 29.80743604], [27.25388910, 6.643782013, 15.16765603], [-20.51315816, 25.24143542, .9653395827], [-6.514439942, 18.29467278, 26.63134657], [7.897693130, -27.90985562, -15.94604661], [-30.24778274, -6.539802137, 13.39182687], [-17.39717901, -3.729632012, -28.80846417], [-27.77451873, 19.73832304, -4.425416699], [-16.72100652, 29.91871832, 7.975859507], [16.27294095, 21.36128840, 22.77346814], [-25.44324866, 19.59393922, -15.24864399], [.1513479143, -17.34275050, 31.03237984], [1.717990984, -16.62465483, -31.43293430], [-3.952184454, -11.22283603, 34.16753707], [13.79744768, 29.99780276, 14.83921382], [-13.23790880, 23.68644879, -24.00672435], [22.42836846, 11.77515669, 25.95817545], [-24.22192093, -3.619990337, 27.00973559], [-28.14737644, 22.63107168, -6.108739192], [12.64368664, 3.411528480, 34.29464625], [10.76859270, .9989721406, 35.37371292], [16.76571480, 7.324760688, 32.87131102], [-2.125303532, -30.39325725, -22.70975559], [26.50575552, 7.450431864, 26.68129662], [4.681906269, 34.62812576, -15.77746051], [21.22229159, 16.34336469, -27.73774271], [8.642995477, -16.39289961, 33.84907047], [4.194125964, -26.48066899, -28.95298045], [29.05143012, -24.81226531, -9.951698266], [-12.02418205, -37.67674179, 3.460082988], [-36.31468346, 14.37800028, 8.301913818], [31.32513775, -24.56204547, -5.240626617], [-11.18258143, 31.40433711, -22.91113229], [-30.95713334, -9.346509576, 24.99311013], [-23.18290754, -32.62151994, 9.092350346], [-26.39556889, 28.60460399, -13.63041355], [-40.27955197, 8.782362586, 1.079537348], [-11.43139039, -7.856576969, -38.95407568], [3.769221962, 22.28497845, 34.93658256], [-4.619258428, 34.61973164, 22.85528894], [-23.40542087, 11.26426836, 32.88997769], [39.51971345, -13.14645885, 5.261489147], [6.069471167, -26.08199826, 32.48539497], [-40.13923071, 12.57887241, 3.384394608], [41.02326573, 9.244992210, -5.014408062], [-29.06950326, -20.65862072, -24.78609025], [-27.49729080, 30.53883527, -15.52814989], [-29.74467917, 7.692497076, 31.48332336], [25.85459060, -9.924647480, -34.69169378], [-13.64550398, 34.99890783, -24.20893992], [30.42203099, 31.61316765, -8.607657127], [-33.27978250, -2.970141446, -29.76905838], [-1.180761099, 27.04387545, -35.92262524], [-21.03852595, 37.95450550, 11.87164852], [-19.67481024, -7.473759355, -40.42995379], [39.79319523, 3.271596183, 22.31470081], [-20.50141444, 1.505529746, 41.05062102], [-.6748395635, 38.66153119, 24.82404273], [-16.85106712, -16.67552070, -39.45541086], [40.49802876, 12.53623404, -18.78641538], [-32.93404980, 18.55738333, 27.16384339], [34.92406817, 25.28080920, 17.94659157], [-6.296985384, 45.37992800, 9.404414370], [22.24424377, 32.85461078, 25.08249928], [39.53312079, -25.57512282, 6.115214927], [-1.588926894, 23.92244252, 41.02855658], [-35.74198886, 5.341675996, 31.19429964], [36.98453431, 14.41966737, -26.57424156], [-46.68814535, -5.898084394, -8.552109953], [35.05110270, 5.991394707, 32.01789951], [36.60612781, 13.32354091, -27.78663643], [13.51762166, -35.96304965, 29.05652877], [-10.38961406, -43.95116043, 17.78996954], [-28.30533977, -7.584392920, 38.74662727], [9.914015961, -13.79681314, -45.68312418], [-9.191698604, 47.28718983, 7.802201960], [21.29072957, 42.51660453, 11.24023016], [-35.75149122, -29.78701952, -15.57013949], [5.493536467, -15.01179385, -46.42496206], [-3.928870403, 39.36220535, 29.27122934], [33.42605444, 36.35056112, -1.638197365], [-17.62503890, -46.15541461, -4.148747474], [44.66028688, -18.77345598, 11.18456642], [45.91393827, -16.62061368, -9.934504171]), SYMBOL(_SOLIDCIRCLE, 5), COLOUR(RGB, 1.00000000, 0., 0.))

(2)

lines := seq(`if`(tt[i][3] > 0, line(tt[i], [tt[i][1], tt[i][2], 0], color = blue), line(tt[i], [tt[i][1], tt[i][2], 0], color = blue, linestyle = dot)), i = 1 .. nops(b)):

c1 := circle([0, 0], 10, color = blue):

c2 := circle([0, 0], 20, color = blue):

c3 := circle([0, 0], 30, color = blue):

c4 := circle([0, 0], 40, color = blue):

c5 := circle([0, 0], 50, color = blue):

l1 := line([-50*cos((1/4)*Pi), -50*sin((1/4)*Pi)], [50*cos((1/4)*Pi), 50*sin((1/4)*Pi)], color = blue):

l2 := line([-50*cos(2*Pi*(1/4)), -50*sin(2*Pi*(1/4))], [50*cos(2*((1/4)*Pi)), 50*sin(2*((1/4)*Pi))], color = blue):

l3 := line([-50*cos(3*((1/4)*Pi)), -50*sin(3*((1/4)*Pi))], [50*cos(3*((1/4)*Pi)), 50*sin(3*((1/4)*Pi))], color = blue):

l4 := line([-50*cos(4*((1/4)*Pi)), -50*sin(4*((1/4)*Pi))], [50*cos(4*((1/4)*Pi)), 50*sin(4*((1/4)*Pi))], color = blue):

t1 := textplot([55, 0, "0"], color = blue):NULL

t2 := textplot([55*cos((1/2)*Pi), 55*sin((1/2)*Pi), "90"], color = blue):

t4 := textplot([55*cos(3*Pi*(1/2)), 55*sin(3*Pi*(1/2)), "270"], color = blue):

t3 := textplot([55*cos(Pi), 55*sin(Pi), "180"], color = blue):

a1 := arrow([60, 0], [80, 0], 1.5, 4, .4, color = blue):

a2 := textplot([95, 5, "Galactic Center"]):

d := display(c1, c2, c3, c4, c5, l1, l2, l3, l4, t1, t2, t3, t4, a1, a2, axes = none, scaling = constrained):

to3d := transform(proc (x, y) options operator, arrow; [x, y, 0] end proc):

display(to3d(d), stars, lines, orientation = [-46, 75])

 

``

``

NULL

NULL

The modified data file and the maple worksheet below

stars3.txt

Download Stars50LY.mw

Ever needed to measure something and all you had was a piece of paper?  This leads us to how we can use maple to figure out what we can measure using a sheet of standard 8-1/2" x 11" paper.

Can we measure 6" with a sheet of paper?

> eq := (17/2)*x+11*y = 6;
                                  17             
                            eq := -- x + 11 y = 6
                                  2              
> eq2 := isolve(eq, a);
                   eq2 := {x = -20 - 22 a, y = 16 + 17 a}
> subs(a = 0, b = 0, eq2);
                              {x = -20, y = 16}

So that is the simplest case, stacking up 16 pieces on the long side and subtracting 20 on the short side.  A total of toppling the piece of paper over 36 times.  That's a high percentage of of error. 

But wait!  haha.   Wouldn't a fold make it simpler?  Sure!  Fold the 8.5" across and we now have 2.5" to work with.

> eq := (17/2)*x+11*y+(5/2)*z = 6;
                               17            5      
                         eq := -- x + 11 y + - z = 6
                               2             2      
> eq2 := isolve(eq, {a, b});
           eq2 := {x = a, y = 1 + 4 a + 5 b, z = -2 - 21 a - 22 b}
> subs(a = 0, b = 0, eq2);
                           {x = 0, y = 1, z = -2}

Less toppling of pieces of paper and much less error. 

 

 

The copy paste and snip tool used to work.  I can no longer use either to paste in mapleprimes.

4 5 6 7 8 9 10 Last Page 6 of 38