Rouben Rostamian

MaplePrimes Activity


These are replies submitted by Rouben Rostamian

@Preben Alsholm I suspect that Maple's algorithm is not equipped to deal with this kind of equation, which is actually not a delay differential equation in the conventional sense, since the delay itself is unknown.  It appears that it applies an algorithm to it blindly and just by luck picks up some parts of the correct solution.  As you have noted, its "solution" extends to x = 1.0058, which is probably wrong, since all evidence suggests that the solution should break down before reaching x = 0.85.

As to the incorrect plot in the x<0 region, that's not something particular to that specific equation.   This happens even in the simplest case:

eq:=diff(y(x),x)= -y(x-1);
res:=dsolve({eq,y(0)=1},numeric);
plots:-odeplot(res,[x,y(x)],-1..10);

The graph in the x>0 region is correct, and actually corresponds to y(x)≡1 in x<0, as intended.  The graph in the x<0 region is incorrect, however, in the same way as the graph for the more complex equation that you have shown.  I have no idea how Maple comes up with that graph.

@NickB Alejandro's and my results are equivalent.  You will get his result by applying the asympt() function to mine.  Choose whichever form best suits your needs.

@Preben Alsholm The equation's variable delay is tau = x-y(x)+2, as you have noted. If we plot the delay, as in:

plots:-odeplot(res,[x,x-y(x)+2],0..1);

we see that it becomes negative after around x=0.85.  Is the solution meaningful after that point?

@Oloyemike You will have to examine your equations more closely.  As things stand right now, they don't make sense:

  1. If, as you say, Q in the first pde is Q(r,tau), then U in the first PDE will depend on r, but you have said U is a function of x and tau only.
  2. Similarly, if U in the BC is U(x, tau), then Q will depend on x.

@acer It goes to show that it's good to pay attention to existing code before embarking on its modifications.

Acer and Carl, thank you very much for your answers and discussion.  In the application which brought this up, the efficiency of pefromance is not an issue at all because the table is small and the number of lookups are few.  I will go with the assigned() test since it is simple to use and expresses the intent well.

A few minutes ago I posted a worksheet in response to a thread to which both of you had contributed:

http://www.mapleprimes.com/questions/204335-Can-Rotate-3d-Text-Like-This-Be-Done-In-Maple

Within the worksheet I use the assigned() test to tell whether a given entry is in the table.

@acer That's a very clever idea. I knew nothing about the this STL business at all.

I have used your idea to produce a couple of procs that automate some of the constructions.  In particular, the procs account for varying widths of the characters.  For instance, the charcater "M" is subtantially wider than the character "I", so we don't want to place them in uniform intervals when processing a string such as "MIAMI".

The procs extract information about the character widths, then arrange them so that the gap between the characters is prescribed.  For instance, with the gap set to zero we get:

while with the gap set to 15 we get

We may wrap the text around a cylinder:

or produce an animation:

Here is the worksheet that produced these:  3d-letters.mw

@Markiyan Hirnyk That's the hard way of proving the symmetry.  The obvious way is to observe that y = (1-x^5)^(1/5) is equivalent to x^5 + y^5 = 1, and therefore the graph is invariant under the interchange of x and y.

It is based on that symmetry that I grouped the diagram's six subregions into three pairs of areas of a, b, c.

It is also clear that the power 5 is nothing special.  The argument works for x^p + y^p = 1 for any positive p.

  1. What is the range of the x variable?
  2. What is the range of the r variable?
  3. How is r related to x?
  4. In the second PDE you have Q(r, tau).  Shouldn't the Q in the first PDE be Q(r,tau)?
  5. In the second IBC you have U.  Shouldn't that be U(something,something)?

Furthermore, the occurrence of gamma in eqd1 is suspicious.  The symbol gamma is predefined in Maple as Euler's constant 0.5772...

@Carl Love Yes, I could have been more precise in what I wrote.  My point was that using ScalarMultiply instead of "*" is rather odd; that's why I said that the intent was unclear.  Perhaps f was meant to be a vector of some kind.

Where is your initial condition?

Thanks, Carl and Acer, for your answers.  Both contain useful information.

Carl's solution is quite to the point although in a way it "cheats" by converting things to diff and then back.  Acer's solution provides sufficient reason to believe that there is no simple and straighforward solution purely with D.

The question arose in dealing with the output of Maple's mtaylor() which comes in terms of D:

> mtaylor(u(x+h, t+k), [h,k]);

                  u(x, t) + D[1](u)(x, t) h + D[2](u)(x, t) k + ...

I attempted to stay with the D notation for subsequent calculations, but I encountered the problem which lead to the question I asked.  Now with what I have learned, it's best to convert the output of mtaylor() to diff right away and go from there.

OK, here I am responding to my own post where I wrote that I had failed to produce the image of a cut-out sphere in Maple.  Now I have figured out how.  Here it is:

restart;
with(plots):  with(plottools):
clip := transform((x,y,z) -> `if`(x > H2 and z > H1, [H2,y,z], [x,y,z])):
R := 1; H1 := 1/3; H2 := 1/2;
display(clip(sphere(R, grid=[200,200])));

display(clip(sphere(R, grid=[200,200])),
    color=gold, style=surface, lightmodel=light4, axes=none, orientation=[60,75]);

This assumes that H2 is nonnegative.  H1, however, can be negative:

R := 1; H1 := -1/2; H2 := 0;
display(clip(sphere(R, grid=[200,200])));

Perhaps the method may be modified to allow for negative H2 but I haven't given much thought to it.

Your question gives the impression that you regard passing the exam as a goal.  That's a distorted view.  Bear in mind that:

  • Passing the exam is not a goal.
  • Your goal should be to learn the material.
  • Passing an exam only certifies that you have learned the material.

Get your priorities straight.  Learn the material.  Then passing the exam will follow automatically.

Here is how to study:

for t in [course_topics] do
    if not (Do I understand topic t?) then
        study topic t until I understand it;
    end if
end do;

When you exit from that for-loop, you will be ready to pass the exam.

In short: Don't place the focus on passing the exam.  Place the focus on learning the material.

 

First 91 92 93 94 95 96 97 Page 93 of 99