Rouben Rostamian

MaplePrimes Activity


These are replies submitted by Rouben Rostamian

@C_R I have no Maple Sim so I cannot be of help here, but let us know if you make further progress in what you are doing.

I don't have Maple Sim but I am guessing that what you are seeing is due to Maple Sim's attempt to simulate the dynamics of a massless disk.  Give the disk a little mass (something like 1e-6) and see if that helps.

Here is an interesting exercise: Calculate the vertical component of the force that the floor exerts on the disk. Is that force always possitive?

When that force becomes negative, the disk will lift off the floor!

@acer Filed a bug report.  Included Kitonum's examples as well.

Additionally, submitted a separate SCR suggesting an improvement to implicitplot3d.  Currently, implicitplot is designed to handle variable ranges, as seen in the samples in this thread. Implicitplot3d, however, requires fixed (constant) bounds on the ranges.  That's too limiting and it can be improved.

 

@Kitonum Good catches!  The graph I plotted in Maple 2021 looked sort of correct, so I did not inversitage it any further.

Thank you all, mmcdaraacerKitonumdharr,  for your varied suggestions.  The substring method seems to be the most direct.  I didn't know about it.  Despite its name, substring extracts characters from both strings and names, as documented in its help page.

My calculation shows, if I am not mistaken, that the ratio of the areas is 

72/5*(sqrt(2)-1)

which is approximately 5.965, not 6 as claimed.

Edit: Oops, I found my error.  Sorry.

@Earl Most any book on calculus of variations includes a discussion of constraints and the use of Lagrange multipliers to enforce them.  The lambda that appears in my formulation is a Lagrange multiplier.  It enforces the constraint z = f(x,y), that is, the requirement that the moving point does not leave the surface.

A quick search on "lagrange multiplier, calculus of variations" on Google, turns up quite a few references.  One of them is a  handbook which I haven't seen but it comes as highly recommended.  You may want to get a copy.

I take this opportunity to make a correction to my original post.  There I took lambda to be a constant.  In general, lambda would be a function of t.  Because of the special structure of the current problem, that error does not affect the solution, but in other situations it may.  So I have attached a corrected worksheet here. I have also included a new animation where contour lines help to better illustrate the particle's motion. 

Worksheet:  hills2.mw

 

 

 

 

 

You have:

restart, with(plots):

That's not good.  Here is what the help page on restart says:

It [restart] must be executed in a separate prompt (or line) from all other commands, since all commands in a prompt are passed to the kernel at once; entering other commands in the prompt could cause unexpected results. 

I conjecture that the answer to question (a) is a lamniscate

(x^2 + y^2)^2 = K^2*(x^2 - y^2);

for an appropriate choice of K but I don't have the patience to verify it.

@Kitonum That's nice and works well with low degree polynomials.  In the general case, I would feel uncomfortable in not knowing how Maple is going to parametrize the implicitly defined function, or if it is going to be able to parametrize it at all.  The direct differentiation method would be a better approach in those cases.

@Jesús Guillera and @Kitonum, here is the correct calculation of the second derivative.  Sorry for the previous misfire.

restart;

P:=(x,y)->11*x^3-9*x^2*y+27*x*y^2+7*y^3-18*x^2-24*x*y+18*y^2;

proc (x, y) options operator, arrow; 11*x^3-9*x^2*y+27*x*y^2+7*y^3-18*x^2-24*y*x+18*y^2 end proc

plots:-implicitplot(P(x,y), x=-1..3, y=-2..3, gridrefine=3, scaling=constrained, color=black, thickness=3);

The first derivative

 

Consider y as a function of x and calculate the derivative

P(x,y(x));
diff(%, x):
dP := simplify(isolate(%, diff(y(x), x)));

11*x^3-9*x^2*y(x)+27*x*y(x)^2+7*y(x)^3-18*x^2-24*y(x)*x+18*y(x)^2

diff(y(x), x) = (9*y(x)^2+(-6*x-8)*y(x)+11*x^2-12*x)/(-7*y(x)^2+(-18*x-12)*y(x)+3*x^2+8*x)

Introduce notation for the numerator and denominator of that derivative:

nn := numer(rhs(dP));
dd := denom(rhs(dP));

-11*x^2+6*y(x)*x-9*y(x)^2+12*x+8*y(x)

-3*x^2+18*y(x)*x+7*y(x)^2-8*x+12*y(x)

We want to evaluate the derivative at the origin, but the numerator and denominator

are zero there:

subs(x=0, y(0)=0, nn);
subs(x=0, y(0)=0, dd);

0

0

Apply l'Hopital's rule to resolve the indeterminacy:

diff(nn, x) / diff(dd, x);
limit(%, x=0);
L := simplify(subs(y(0)=0, %));

(-22*x+6*(diff(y(x), x))*x+6*y(x)-18*y(x)*(diff(y(x), x))+12+8*(diff(y(x), x)))/(-6*x+18*(diff(y(x), x))*x+18*y(x)+14*y(x)*(diff(y(x), x))-8+12*(diff(y(x), x)))

-(9*y(0)*(D(y))(0)-3*y(0)-4*(D(y))(0)-6)/(7*y(0)*(D(y))(0)+9*y(0)+6*(D(y))(0)-4)

(3+2*(D(y))(0))/(-2+3*(D(y))(0))

That should be the same as the derivative D(y)(0).  Therefore we equate and solve:

L = D(y)(0):
S := solve(%, D(y)(0));

2/3-(1/3)*13^(1/2), 2/3+(1/3)*13^(1/2)

Those are the slopes of the two branches of the curve at the origin.
Their numerical values agree with those calculated by Jesús Guillera:

evalf([S]);

[-.5351837583, 1.868517092]

 

The second derivative

 

We are going to calculate the second derivatives of the two branches,

based on the following data:

data1 := x=0, y(0)=0, D(y)(0)=S[1];
data2 := x=0, y(0)=0, D(y)(0)=S[2];

x = 0, y(0) = 0, (D(y))(0) = 2/3-(1/3)*13^(1/2)

x = 0, y(0) = 0, (D(y))(0) = 2/3+(1/3)*13^(1/2)

Begin with calculating the general form of the second derivative

diff(P(x,y(x)), x, x):
simplify(solve(%, diff(y(x), x, x))):
d2P := convert(%, D);

((18*x+14*y(x)+12)*(D(y))(x)^2+(-12*x+36*y(x)-16)*(D(y))(x)+22*x-6*y(x)-12)/(-7*y(x)^2+(-18*x-12)*y(x)+3*x^2+8*x)

As in the previous section, the numerator and denominator vanish at the origin

nn := numer(d2P):
dd := denom(d2P):

simplify(subs(data1, nn));
simplify(subs(data2, nn));
subs(x=0, y(0)=0, dd);

0

0

0

So we apply l'Hopital.  Here is the second derivative of one branch

limit(diff(nn, x) / diff(dd, x), x=0):
simplify(subs(data1, %)) = (D@@2)(y)(0):
solve(%, (D@@2)(y)(0));
evalf(%);

-209/81+(1057/1053)*13^(1/2)

1.039000660

and here is the second derivative of the other branch:

limit(diff(nn, x) / diff(dd, x), x=0):
simplify(subs(data2, %)) = (D@@2)(y)(0):
solve(%, (D@@2)(y)(0));
evalf(%);

-209/81-(1057/1053)*13^(1/2)

-6.199494488

 

 

Download second-derivative.mw

@Kitonum Yours is a good example and it shows that there is no basis to my previous calculation.  The calculation would have been correct if the expression returned by implicitdiff were continuous at (u0,v0) but it certainly is not, and therefore taking the limit toward (u0,v0) is not meaningful.

If I come up with a valid argument, I will write again.  In the meantime, thanks for your insightful comment.

You write: "We see that P(u0,v0)=0."

I don't see that.  To get more help, upload your worksheet by clicking the big fat green arrow when you reply to this message.

@janhardo As you have noted, your code needs several corrections.  But even after those corrections a major impediment remains.  Your code intends to apply pdsolve,numeric to find w(x,y,t).  The problem that we face is that Maple's pdsolve,numeric is designed to solve PDEs in two independent variables.  So we are out of luck with solving for w(x,y,t).

Yet another major issue: After a few corrections, the PDE that you have attempted to present would describe the equation of motion of a membrane, not a plate which is the subject of this post.  The equation of the plate is of 4th order in the spatial variables.  See the equation included in my earlier answer.

In your description of the boundary conditions, you refer to the "clamped" boundary condition.  There is no such a thing as a clamped boundary condition for a membrane.  The clamped boundary condition applies to plates, and indicates that not only the displacement, but also the slope at the boundary is zero. 

1 2 3 4 5 6 7 Last Page 2 of 95