Ronan

1396 Reputation

16 Badges

13 years, 352 days
East Grinstead, United Kingdom

MaplePrimes Activity


These are questions asked by Ronan

I was posting some code on a forum tonight. I specificially added # comments to the code. I used Ctrl_c ,Crtl_v. All the # comments were removed including the 2016 grey boxes which appeared as NULL.

Is there away around this. The comments were very important to help in understanding. The pasted code did look readable though.

I also experimented with exporting the code as .txt and opening it in Word. Required loads of editing to make it look presentable, which really opend the door to introuucing errors, also all # coments were removed too.

The forum just has the normal type comments box. Nothing fancy. Actually it is a WordPress Blog. It does accept latex but that is ok for one or two lines. Could be a real mess if 30--40 lines of code go wrong and latex as far as I know can't be copy/pasted back in to Maple.

 

I am experimenting with rotating a group of pionts, lines cylinders etc. the only aminations that  will display are where I put the transformations directly as the point coordinates. This is very tedious. Is there a way around this problem efficiently? Attached worksheet shows problem(s). Ultimately I will have a whole group of objects to rotate.
 

restart

with(plots)

[animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, densityplot, display, dualaxisplot, fieldplot, fieldplot3d, gradplot, gradplot3d, implicitplot, implicitplot3d, inequal, interactive, interactiveparams, intersectplot, listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d, loglogplot, logplot, matrixplot, multiple, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, rootlocus, semilogplot, setcolors, setoptions, setoptions3d, shadebetween, spacecurve, sparsematrixplot, surfdata, textplot, textplot3d, tubeplot]

(1)

with(plottools)

[annulus, arc, arrow, circle, cone, cuboid, curve, cutin, cutout, cylinder, disk, dodecahedron, ellipse, ellipticArc, exportplot, extrude, getdata, hemisphere, hexahedron, homothety, hyperbola, icosahedron, importplot, line, octahedron, parallelepiped, pieslice, point, polygon, prism, project, rectangle, reflect, rotate, scale, sector, semitorus, sphere, stellate, tetrahedron, torus, transform, translate]

(2)

``

``

``

a1 := proc (t) options operator, arrow; display(line([0, 0, 0], [10*sin(t), 0, 0], colour = red), point([10*sin(t), 0, 0], colour = green, symbolsize = 50, symbol = solidsphere), line([0, 0, 0], [0, 10*sin(t+1.6), 0], colour = orange), point([0, 10*sin(t+1.6), 0], colour = green, symbolsize = 40, symbol = solidsphere), line([0, 0, 0], [0, 0, 10*sin(t+.5)^2], colour = yellow), point([0, 0, 10*sin(t+.5)^2], colour = green, symbolsize = 30, symbol = solidsphere)) end proc

animate(a1, [t], t = 0 .. 2*Pi, frames = 100)

 

c1 := Vector(3, [1, -.2, 0]):

c2 := Vector(3, [-1, -.2, 0]):

c3 := Vector(3, [0, 1, 0]):

c4 := Vector(3, [1, -.2, 0]):

c5 := Vector(3, [-1, -.2, 0]):

c6 := Vector(3, [0, 1, 0]):

c7 := Vector(3, [.5, 0, 0]):

c8 := Vector(3, [0, .5, 0]):

c9 := Vector(3, [0, 0, .5]):

c := [seq(c || n, n = 1 .. 9)]

[Vector[column](%id = 18446744074349586662), Vector[column](%id = 18446744074349586782), Vector[column](%id = 18446744074349586902), Vector[column](%id = 18446744074349587022), Vector[column](%id = 18446744074349587142), Vector[column](%id = 18446744074349587382), Vector[column](%id = 18446744074349587502), Vector[column](%id = 18446744074349587622), Vector[column](%id = 18446744074349587742)]

(3)

Rot := Matrix([[cos(w*t), -sin(w*t), 0], [sin(w*t), cos(w*t), 0], [0, 0, 1]])

Matrix(%id = 18446744074349582806)

(4)

d := seq(Rot.c[n], n = 1 .. 9)

Vector[column](%id = 18446744074349577870), Vector[column](%id = 18446744074349577990), Vector[column](%id = 18446744074349578110), Vector[column](%id = 18446744074349578230), Vector[column](%id = 18446744074349578350), Vector[column](%id = 18446744074349578590), Vector[column](%id = 18446744074349578710), Vector[column](%id = 18446744074349578830), Vector[column](%id = 18446744074349578950)

(5)

``

w := .25

.25

(6)

``

``

[d[1][1], d[1][2], d[1][3]]

[cos(.25*t)+.2*sin(.25*t), sin(.25*t)-.2*cos(.25*t), 0.]

(7)

ff1 := proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [d[1][1], d[1][2], d[1][3]], colour = red, thickness = 4)]) end proc

proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [d[1][1], d[1][2], d[1][3]], colour = red, thickness = 4)]) end proc

(8)

plots:-animate(ff1, [t], t = 0 .. 5, frames = 100)

 

 

Lend1 := [cos(w*t)+.2*sin(w*t), sin(w*t)-.2*cos(w*t), 0.]

[cos(.25*t)+.2*sin(.25*t), sin(.25*t)-.2*cos(.25*t), 0.]

(9)

ff2 := proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], Lend1, colour = red, thickness = 4)]) end proc

proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], Lend1, colour = red, thickness = 4)]) end proc

(10)

plots:-animate(ff2, [t], t = 0 .. 5, frames = 100)

 

``

ff3 := proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [cos(.35*t)+.2*sin(.35*t), sin(.35*t)+(-1)*.2*cos(.35*t), 0.], colour = red, thickness = 4)]) end proc

proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [cos(.35*t)+.2*sin(.35*t), sin(.35*t)-.2*cos(.35*t), 0.], colour = red, thickness = 4)]) end proc

(11)

plots:-animate(ff3, [t], t = 0 .. 5, frames = 100)

 

``


 

Download Anim_How-1.mw

restart

with(plots)

[animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, densityplot, display, dualaxisplot, fieldplot, fieldplot3d, gradplot, gradplot3d, implicitplot, implicitplot3d, inequal, interactive, interactiveparams, intersectplot, listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d, loglogplot, logplot, matrixplot, multiple, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, rootlocus, semilogplot, setcolors, setoptions, setoptions3d, shadebetween, spacecurve, sparsematrixplot, surfdata, textplot, textplot3d, tubeplot]

(1)

with(plottools)

[annulus, arc, arrow, circle, cone, cuboid, curve, cutin, cutout, cylinder, disk, dodecahedron, ellipse, ellipticArc, exportplot, extrude, getdata, hemisphere, hexahedron, homothety, hyperbola, icosahedron, importplot, line, octahedron, parallelepiped, pieslice, point, polygon, prism, project, rectangle, reflect, rotate, scale, sector, semitorus, sphere, stellate, tetrahedron, torus, transform, translate]

(2)

``

``

``

a1 := proc (t) options operator, arrow; display(line([0, 0, 0], [10*sin(t), 0, 0], colour = red), point([10*sin(t), 0, 0], colour = green, symbolsize = 50, symbol = solidsphere), line([0, 0, 0], [0, 10*sin(t+1.6), 0], colour = orange), point([0, 10*sin(t+1.6), 0], colour = green, symbolsize = 40, symbol = solidsphere), line([0, 0, 0], [0, 0, 10*sin(t+.5)^2], colour = yellow), point([0, 0, 10*sin(t+.5)^2], colour = green, symbolsize = 30, symbol = solidsphere)) end proc

animate(a1, [t], t = 0 .. 2*Pi, frames = 100)

 

c1 := Vector(3, [1, -.2, 0]):

c2 := Vector(3, [-1, -.2, 0]):

c3 := Vector(3, [0, 1, 0]):

c4 := Vector(3, [1, -.2, 0]):

c5 := Vector(3, [-1, -.2, 0]):

c6 := Vector(3, [0, 1, 0]):

c7 := Vector(3, [.5, 0, 0]):

c8 := Vector(3, [0, .5, 0]):

c9 := Vector(3, [0, 0, .5]):

c := [seq(c || n, n = 1 .. 9)]

[Vector[column](%id = 18446744074349586662), Vector[column](%id = 18446744074349586782), Vector[column](%id = 18446744074349586902), Vector[column](%id = 18446744074349587022), Vector[column](%id = 18446744074349587142), Vector[column](%id = 18446744074349587382), Vector[column](%id = 18446744074349587502), Vector[column](%id = 18446744074349587622), Vector[column](%id = 18446744074349587742)]

(3)

Rot := Matrix([[cos(w*t), -sin(w*t), 0], [sin(w*t), cos(w*t), 0], [0, 0, 1]])

Matrix(%id = 18446744074349582806)

(4)

d := seq(Rot.c[n], n = 1 .. 9)

Vector[column](%id = 18446744074349577870), Vector[column](%id = 18446744074349577990), Vector[column](%id = 18446744074349578110), Vector[column](%id = 18446744074349578230), Vector[column](%id = 18446744074349578350), Vector[column](%id = 18446744074349578590), Vector[column](%id = 18446744074349578710), Vector[column](%id = 18446744074349578830), Vector[column](%id = 18446744074349578950)

(5)

``

w := .25

.25

(6)

``

``

[d[1][1], d[1][2], d[1][3]]

[cos(.25*t)+.2*sin(.25*t), sin(.25*t)-.2*cos(.25*t), 0.]

(7)

ff1 := proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [d[1][1], d[1][2], d[1][3]], colour = red, thickness = 4)]) end proc

proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [d[1][1], d[1][2], d[1][3]], colour = red, thickness = 4)]) end proc

(8)

plots:-animate(ff1, [t], t = 0 .. 5, frames = 100)

 

 

Lend1 := [cos(w*t)+.2*sin(w*t), sin(w*t)-.2*cos(w*t), 0.]

[cos(.25*t)+.2*sin(.25*t), sin(.25*t)-.2*cos(.25*t), 0.]

(9)

ff2 := proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], Lend1, colour = red, thickness = 4)]) end proc

proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], Lend1, colour = red, thickness = 4)]) end proc

(10)

plots:-animate(ff2, [t], t = 0 .. 5, frames = 100)

 

``

ff3 := proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [cos(.35*t)+.2*sin(.35*t), sin(.35*t)+(-1)*.2*cos(.35*t), 0.], colour = red, thickness = 4)]) end proc

proc (t) options operator, arrow; plots:-display([plottools:-line([0, 0, 0], [cos(.35*t)+.2*sin(.35*t), sin(.35*t)-.2*cos(.35*t), 0.], colour = red, thickness = 4)]) end proc

(11)

plots:-animate(ff3, [t], t = 0 .. 5, frames = 100)

 

``


 

Download Anim_How-1.mw

I am working with Euler's eqns. of motion. So want to animate the solution. I could do a simple set of spheres along the x, y, z axes  that represent the body or use an imported STL file.  Looking for some guidance on how to approech this. I can import an STL ok. How do I give it an xyz set of axes and then rotate/move these in an inertial frame? I have the equations and solutions already. A reasonable example would be adding an STL of a pendulum to http://www.mapleprimes.com/questions/220957-Non-Simple-Harmonic-Pendulum-Motion#answer235955  to Preben's animation response to a recent post  I placed.

 

The first half of this work sheet deals with SHM of pendulum. In the second half of the work sheet I attempt to solve for the general case of a swinging pendulum. Maple introduces a place holder (correct me if I have used the incorrect termonology) " __a" which I do not understand. What variable(s) should I replace it with and is there an automatic way of doing so?
 

restart

NULL

``

``

Simple*Harmonic*Motion*of*a*Pendulum

NULL

Eq1 := diff(Theta(t), t, t) = -omega^2*Theta(t)

diff(diff(Theta(t), t), t) = -omega^2*Theta(t)

(1)

ics := Theta(0) = 0, (D(Theta))(0) = Vmax

Theta(0) = 0, (D(Theta))(0) = Vmax

(2)

SHM := dsolve({Eq1, ics})

Theta(t) = Vmax*sin(omega*t)/omega

(3)

diffSHM := diff(SHM, t)

diff(Theta(t), t) = Vmax*cos(omega*t)

(4)

convert(diffSHM, D)

(D(Theta))(t) = Vmax*cos(omega*t)

(5)

eval[recurse](%, {t = 0, (D(Theta))(0) = Vmax})

Vmax = Vmax

(6)

solve(%, {_C1})

{_C1 = _C1}

(7)

assign(%); _C1

_C1

(8)

``

SHM

Theta(t) = Vmax*sin(omega*t)/omega

(9)

``

(General*Equation*of*Motion*of)*a*Pendulum

restart

diff(Theta(t), t, t) = -omega^2*sin(Theta(t))

diff(diff(Theta(t), t), t) = -omega^2*sin(Theta(t))

(10)

ics := Theta(0) = 0, (D(Theta))(0) = Vmax

Theta(0) = 0, (D(Theta))(0) = Vmax

(11)

Sol := dsolve(diff(Theta(t), t, t) = -omega^2*sin(Theta(t)))

Intat(1/(2*omega^2*cos(_a)+_C1)^(1/2), _a = Theta(t))-t-_C2 = 0, Intat(-1/(2*omega^2*cos(_a)+_C1)^(1/2), _a = Theta(t))-t-_C2 = 0

(12)

Sol[1]

Intat(1/(2*omega^2*cos(_a)+_C1)^(1/2), _a = Theta(t))-t-_C2 = 0

(13)

_C2 := 0

0

(14)

Sol[1]

Intat(1/(2*omega^2*cos(_a)+_C1)^(1/2), _a = Theta(t))-t = 0

(15)

``

dffSol[1] := diff(Sol[1], t)

(diff(Theta(t), t))/(2*omega^2*cos(Theta(t))+_C1)^(1/2)-1 = 0

(16)

``convert(dffSol[1], D)

(D(Theta))(t)/(2*omega^2*cos(Theta(t))+_C1)^(1/2)-1 = 0

(17)

 

eval[recurse](%, {t = 0, Theta(0) = 0, (D(Theta))(0) = Vmax})

Vmax/(2*omega^2+_C1)^(1/2)-1 = 0

(18)

solve(%, {_C1})

{_C1 = Vmax^2-2*omega^2}

(19)

assign(%); 1; _C1

Vmax^2-2*omega^2

(20)

dffSol[1]

(diff(Theta(t), t))/(2*omega^2*cos(Theta(t))+Vmax^2-2*omega^2)^(1/2)-1 = 0

(21)

``

dsolve(dffSol[1]); 1; SOL1 := int((diff(Theta(t), t))/sqrt(2*omega^2*cos(Theta(t))+Vmax^2-2*omega^2)-1, t = 0 .. Theta(t)) = 0

int((diff(Theta(t), t))/(2*omega^2*cos(Theta(t))+Vmax^2-2*omega^2)^(1/2)-1, t = 0 .. Theta(t)) = 0

(22)

Sol[1]

Intat(1/(2*omega^2*cos(_a)+Vmax^2-2*omega^2)^(1/2), _a = Theta(t))-t = 0

(23)

"Using  ( 1-cos(theta))/(2)=sin(theta/(2))^(2)and substituting by hand"

NotsoSHM := Intat(1/(Vmax*sqrt(1-2*omega^2*sin((1/2)*_a)^2/Vmax^2)), _a = (1/2)*Theta(t))-t = 0

Intat(1/(Vmax*(1-2*omega^2*sin((1/2)*_a)^2/Vmax^2)^(1/2)), _a = (1/2)*Theta(t))-t = 0

(24)

``

``


 

Download SHM_and_not_so_SHM.mw

I am practicing with some diff equations. I am having problem solving for one of the constants. I am having a pproblem assigning a value to derivatives or 2nd derivatives. What is a good general technique is this type of situation?
 

restart

NULL

``

omega^2 = g/l

omega^2 = g/l

(1)

Eq1 := diff(Theta(t), t, t) = -omega^2*Theta(t)

diff(diff(Theta(t), t), t) = -omega^2*Theta(t)

(2)

ics := Theta(0) = 0, (diff(Theta(t), t))(0) = Vmax, (diff(Theta(t), t, t))(0) = 0

Theta(0) = 0, (diff(Theta(t), t))(0) = Vmax, (diff(diff(Theta(t), t), t))(0) = 0

(3)

SHM := dsolve({Eq1, ics})

(4)

SHM := dsolve({Eq1})

{Theta(t) = _C1*sin(omega*t)+_C2*cos(omega*t)}

(5)

SHM := dsolve({Eq1, Theta(0) = 0})

Theta(t) = _C1*sin(omega*t)

(6)

``

diffSHM := diff(SHM, t)

diff(Theta(t), t) = _C1*omega*cos(omega*t)

(7)

``

(Theta(t))(0) = 0, (diff(Theta(t), t))(0) = V

(Theta(t))(0) = 0, (diff(Theta(t), t))(0) = V

(8)

``

``

``

``

``

NULL

NULL


 

Download SHM.mw

First 27 28 29 30 31 32 33 Page 29 of 36