Mathematica 9 is now available
Student Support Forum
-----
Student Support Forum: 'Derivative of module' topicStudent Support Forum > General > Archives > "Derivative of module"

Next Comment >Help | Reply To Topic
Author Comment/Response
akil
02/21/06 12:24pm

For my thesis I wrote a module that computes something for cones and two angles (not that important what it does).
This code produces a surface.
Now I need the derivative of Cones[alphaInput_, v_], so I need Cones'[alphaInput_, v_] to v, so I can plot the maximal curve of the surface.

I tried using
D[Conesv2[x, y], y]
Solve[% == 0, x]

and then plotting this, but Mathematica won't even return something for Solve.I also tried it with removing the if statements, but didn't work.
That attempt is added as attachment.


Cones[alphaInput_, v_] := Module[{betafinal, alpha, vgebruik, heightv},
alpha = alphaInput /180 * Pi;
ax = 3; ay = 3; bx = 6; by = 7; cx = 22; cy = 2; dx = 17; dy = 8;
abslope = (by - ay)/(bx - ax);
cdslope = (dy - cy)/(dx - cx);
heightv = 0;

rcad = (dy - ay)/(dx - ax);
AD[x100_] := rcad*x100 - (rcad*ax) + ay;
rcac = (ay - cy)/(ax - cx);
AC[x103_] := rcac*x103 + ay - (rcac*ax);
rcbc = (by - cy)/(bx - cx);
BC[x101_] := rcbc*x101 + cy - (rcbc*cx);
rcbd = (by - dy)/(bx - dx);
BD[x104_] := rcbd*x104 + by - (rcbd*bx);

part1 = rcad*x102 + ay - (rcad*ax);
part2 = rcbc*x102 + cy - (rcbc*cx);
part3 = rcac*x102 + ay - (rcac*ax);
part4 = rcbd*x102 + by - (rcbd*bx);

centerx = If[
ay < by, Solve[part1 == part2, x102], Solve[part3 == part4, x102]];
centerOfMassx = x102 /. centerx;
centerOfMassy = If[ay < by, BC[centerOfMassx], BD[centerOfMassx]];

AB[x_] := abslope*x + ay - abslope*ax;
CD[x_] := cdslope*x + cy - cdslope*cx;

mostRight = If[cx > dx, cx, dx];

vbegin = If[(alpha == 90/180*Pi ), ax, (ay + Tan[alpha]*ax)/Tan[alpha]];
veind = If [
alpha === 90/180*
Pi, bx, If[(by + Tan[
alpha]*bx)/Tan[alpha] > mostRight, mostRight, (by +
Tan[alpha]*bx)/Tan[alpha]]];

vtemp = v;

retour = If[vbegin ≤ vtemp ≤ veind,
vgebruik = vtemp;
VE[aa_, vv_, x_] := -Tan[aa]*x + Tan[aa]*vv + Tan[aa]*heightv;
ex = Solve[AB[x1] == VE[alpha, vgebruik, x1], x1];
exx = x1 /. ex;
ey = AB[exx];

ecomrc = (centerOfMassy - ey)/(centerOfMassx - exx);
erc = ecomrc;
ecomb = -erc*exx + ey;

fxwaarde = (cy - cdslope*cx - ecomb)/(ecomrc - cdslope);
fy = CD[fxwaarde];

slope = (fy - heightv)/(fxwaarde - vgebruik);
betafinal = ArcTan[slope]/Degree;
First[betafinal]
, Return[0]]
]
(*Plot3D[Evaluate[Cones[x5, y5]], {x5, 1, 90}, {y5, 0, 30},
PlotPoints -> 200, ViewPoint -> {0, 0, 2}, AxesLabel -> {"Alpha", "V", "
Beta"}, PlotRange -> {0, 90} , Mesh -> False]*)

Attachment: test.nb, URL: ,

Subject (listing for 'Derivative of module')
Author Date Posted
Derivative of module akil 02/21/06 12:24pm
Re: Derivative of module S. Saralamba 02/21/06 6:59pm
Re: Derivative of module akil 02/22/06 05:45am
Next Comment >Help | Reply To Topic