Carl Love

Carl Love

28035 Reputation

25 Badges

12 years, 322 days
Himself
Wayland, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

It would help me to write an answer if I knew your perspective on this. Are you:

  • a calculus student who wants to learn how to do that limit problem?
  • a calculus student who knows how to do that limit problem but is exploring the possibilities of Maple?
  • a calculus instructor whose students are learning to do that problem?
  • something  else?

I've seen many of these nanofluid-related BVPs because they're one of the most-common sources of questions on MaplePrimes. This one seems overly simplified. Are you sure that you've entered the problem correctly into Maple? The equation f1 implies a nearly trivial relationship between between phi and theta, namely phi(y) = -Nt/Nb*theta(y) + C1*y + C2. Even ignoring the BCs, the pair of ODEs can be symbolically solved by dsolve to very simple elementary functions. It seems unlikely that there would be research-level interest in such simple equations. Are you missing a nonlinear term in f1?

Rouben's argument is solid to me: There is no nontrivial solution to the BVP as posed. That's mathematical fact, not Maple limitation.

@Christopher2222 The idea of partitioning (or dividing) the sector different ways is a purely theoretical exercise, a thought experiment. Any practical answer will be expressed via integration. Yes, there may be different means based on the variable of integration. If the variable of integration is meaningful (such as central angle, arclength, time (if a particle is moving along the ellipse)), then the resulting mean will be meaningful.

@Markiyan Hirnyk Indeed, the OP is also the author of the StackExchange Answer to which you referred.

Leo Brewin: It would be great if you would embed into this MaplePrimes thread a Maple example similar to what you did as a Mathematica example on StackExchange. In the MaplePrimes editor, look on the toolbar for a symbol like <>. That one lets you embed plaintext. And look for the green uparrow. That one lets you upload a PDF or Maple worksheet (and some other file types).

@bliengme 

Both of those options are much better than what you had: They both instantiate (i.e., replace it with another value) before using solve. Of those two options, I strongly prefer the second, because I prefer to never a make direct assignment to a problem's independent variable (t in this case).

There is nothing special about this value of tt = 1. You should call it something like t_final (corresponding to Tfinal), and assign its value at the beginning of the worksheet.

@mmcdara Can you explain why your graphs have a cusp at 3*Pi/2? I'd intuitively expect the mean to be a differentiable function of the angle (but I'm not absolutely sure about that).

Continuing where the last post left off:

So, now that you've had a chance to think about last name evaluation, this may already be obvious: If LNE structures are assigned to both A and B (and even if those structures are identical, with the same address), then addressof(A) and addressof(B) will be different, simply because 'A' and 'B' are different. Whereas addressof(eval(A)) and addressof(eval(B)) will reveal information about the stored structures, which may be the same or different (which is the point that Preben made).

LNE is the sole reason for the apparently special effect that eval has on named tables, procedures, and modules (there is no special effect when those structures are unnamed (aka anonymous)). So the role of eval in your initial Question is trivial, and you should edit the title.

What the disassembly of a structure means: Your next set of questions is about diassemble(addressof(A)), etc. For your first example, the returned numbers are

8, 18446744074328626590, 18446744074328154110, 18446744073709551745

As you might guess from its name, disassemble shows the component substructures. The first number, 8, is a key to what type of structure is stored here. The key can be decoded via kernelopts(dagtag= key), In this case, that returns NAME, which makes sense: A is a name (not a table because of LNE). The second number is the address of what's stored in name A, in this case the table. The third number is a pointer (aka address) to the attributes of A (this is an uncommonly used Maple feature (see ?attributes)). The 4th number is a pointer to the string of characters that is literally the name of A, namely "A". If you pointto that last number, you get 65, which is the ASCII byte code for character A. (You cannot experiment with this by copy-and-pasting the above addresses because addresses are session dependent. You'll need to re-execute the relevant addressof commands.)

What about table references? Your next series of issues deals with table references, such as A[1], B[1], A[2]. Unlike tables themselves, table references do not have the LNE property. So, both addressof(A[1]) and addressof(B[1]) are equivalent to addressof("a"). Thus, they are necessarily equal.

If you want information about the table references themselves, then you need to use unevaluation quotes: addressof('A[1]'), etc. If you then disassemble this and look up its dagtag, 10, you'll see that it's a TABLEREF.

I think that I have now provided enough information for you to understand every issue that you raised. If not, or if you have any further questions, let me know.

@sand15 The anomaly with the saved files from your initial Question had nothing to do with tables; however, the anomalies discussed in your most-recently-posted worksheet are specific to tables (and a few other data structures). The relevant phenomenon is called last name evaluation (see ?last_name_eval), and it applies only to tables, procedures, and modules (except modules that are objects). For brevity, I'll call the relevant types LNE.

If a data structure of any non-LNE type is assigned to a name, as in

A:= 7:

then the following relation is false:

addressof(A) = addressof('A'),

the left side being the address of the integer 7 and the right side being the address of the literal name A.

If the 7 in the example is replaced by an LNE-type structure, then the address relation will be true, with both addresses being that of the literal name A. This concept explains many of the anomalies shown in your worksheet.

 

@bliengme Thank you for the kind words. I look forward to seeing the plot that you come up with. There are so many options that can be added.

Unfortunately, you've introduced a major new error into the worksheet, and it's much more serious than anything else discussed so far in this thread. It's only by a remarkable coincidence that you still got the correct final answer. The error is the line k:= k*t. The remarkable coincidence is that that's effectively the same as temporarily setting t=1, which happens to be what t should be at that point. But you can't rely on that! And it's totally baffling to the reader.

@Kitonum Thank you for catching that. I corrected the code in the original.

The OP's header says Maple 2018. In that case, features like until and embedded assignment are too good for me to not use. If there's any legitimate request, I'll retrofit the code.

@Hyan The parameterization is trivial in this case. Just use Kitonum's Answer with the corrected function.

@Hyan "The function provided" -- I think that there's a mistake in your function, 2*x^2 + 3^2 - x*y - 4, because it's highly unusual for a problem at this level to be stated in a form that can be simplified by trivial arithmetic, 3^2 - 4 = 5. So, would you check that please?

"I know spacecurve is for vector sketching" -- I suppose that you could say that. It depends on how you define "vector", whose mathematical definition allows some flexibility (particularly with respect to whether there's a geometric or algebraic point of view). Certainly, points in space could be (and often are) considered vectors. For me, the key distinctions among the various plotting commands are the number of dimensions of input and output. The command spacecurve is for functions from R^1 to R^3 (R = real numbers), i.e.,1 dimension of input and 3 dimensions of output. So, often a space curve is called a "vector-valued function of a single real variable".

"but f(x,1) and f(1,y) should be polynomials right?" -- Yes, they're polynomials (in one variable), but that is a bit beside the point if your interest is getting the space curves. The (totally abstract) specification of a space curve requires at least two equations in three variables[1]. A more-practical specification, and that which is required by spacecurve, is a parameterization: a list (or vector) of three functions of a single real variable. For example, plotting f(1,y) as a space curve could[2] use the parameterization [1, y, f(1,y)], provided that f has been suitably defined, as it is in Kitonum's Answer below.

[1]The situation of 2 equations in 3 variables is handled by plots:-intersectplot. For example, {z = f(x,y), x = 1} is a set of 2 equations in 3 variables, and it's an abstract specification of the space curve in question as the intersection of two surfaces.

[2]I said "could" because parameterizations are not unique. There are an infinitude of parameterizations possible for any given space curve.

@isifesai You can't assign values to both x and x[i] and use them independently. The two names are intrinsically linked. So, you need to change one of the xs.

You should call or email the Maplesoft Customer Service Department.

Since your situation seems a bit suspicious to me, I won't be surprised if they make you take some extra steps to verify that you are the legitimate owner of the license.

@Kitonum Why is it better to not set global Digits?

First 304 305 306 307 308 309 310 Last Page 306 of 708