acer

32333 Reputation

29 Badges

19 years, 319 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

Put your followup details and queries about solving your system (or derived systems) here, rather than in a separate Question thread.

@Mohamed19 I hope to be able to look at your followup soon, perhaps tonight. (I have been busy.)

@9009134 Please keep your followup example here, instead of in a new Question.

You are missing the code that define Lens and Distance. Please include all the user-defined code necessary to reproduce the problem. You could upload and attach a worksheet.

@Mohamed19 And what difficulty did you have in entering that in Maple?

Is your Maple Help system not working? Which parts of the syntax did you not understand? Something else?

[I am not interested in playing games, like this Question thread in which it took you more than 10 submissions before you came to your main points.]

Your expression has three independent variables, u, v, and alpha.

What kind of plot do you want?

Do you want to animate 3D plots of the real and imaginary parts of the expression (as a function of real u and v), animated by a real parameter alpha?

Do you want to animate 3D plots of the modulus of the expression, colored by its complex argument (as a function of real u and v), animated by a real parameter alpha?

Either of the above, for just a fixed real value of alpha?

Something else?

 

@rookie Do you mean something like this?

restart;

K := proc(ee::algebraic, f::function)
  local m,n,v1,v2;
  if nops(f)<>2 or (not [op(1..2,f)]::list(name)) then
    error "second argument f is not a function call of two names";
  else
    (v1,v2) := op(1,f),op(2,f);
  end if;
  n := PDEtools:-difforder(ee,v1);
  m := PDEtools:-difforder(ee,v2);
  Matrix(m+1,n+1,(i,j)->frontend(coeff,[ee,diff(f,[v1$(j-1),v2$(i-1)])]));
end proc:

 

expr := f0(x,y) + f1(x,y)*diff(z(x,y),x)
         + f2(x,y)*diff(z(x,y),y) + f3(x,y)*diff(z(x,y),x,x):

K(expr, z(x,y));

_rtable[18446884361775252054]

expr := f0(x,y) + f1(x,y)*diff(z(x,y),x)
         + f2(x,y)*diff(z(x,y),y) + f3(x,y)*diff(z(x,y),x,x)
         + f4(x,y)*diff(z(x,y),x,y) + f5(x,y)*diff(z(x,y),y,y)
         + f6(x,y)*diff(z(x,y),x,x,y,y,y)
         + f7(x,y)*diff(z(x,y),x,x,x,y,y,y):

K(expr, z(x,y));

_rtable[18446884361700863998]

 

Download simple_dcoeff2.mw

The above procedure K also finds any nonzero coefficient for z(x,y), if such a term is present. It's easy to adjust K if you'd prefer the [1,1] entry to always be identically 0.  Let me know.

And in your original Question you wrote, "first term in vector always for diff((y(x),x)". So your earlier examples' results omitted a coefficient of 0 for y(x) itself. It would be a simple adjustment to earlier procedure H, to include it. For example,

restart;

H := proc(ee::algebraic, f::function)
  local i,n,v;
  if nops(f)<>1 or (not op(1,f)::name) then
    error "second argument f is not a function of a name";
  else
    v := op(1,f);
  end if;
  n := PDEtools:-difforder(ee,v);
  < seq( frontend(coeff,[ee,diff(f,[v$i])]), i=0..n) >;
end proc:

z := f0(x)*y(x) + f2(x)*diff(y(x),x,x) + f4(x)*diff(y(x),x,x,x,x):

H(z, y(x));

_rtable[18446884076432032342]

 

Download simple_dcoeff3.mw

@manon22lr What is tensdBe[1,1] supposed to be? You seem to have omitted its definition. What is the derivative in your ode?

@Gillee You wrote, "The fix is to append datatype-float[8] to each of the Arrays" [within the followup example, which didn't use Statistics:-Sample].

Yes, that was the meaning of my previous three Replies.

Your Reply used the phrasing, "Lets determine the datatype of the first entry of dat". That phrasing and your ensuing methodology are technically invalid. Scalar objects (numeric values) do not have a "datatype". You can test them for various types but the word datatype in Maple is a technical term that applies to Vectors,Matrices, and Arrays but not to their entries if first extracted as scalar objects.

You should never use a word that is only a technical term as if it were a compound of non-technical terms. You should never refer to the "datatype" of a scalar as if you were referring to a particular type satisfied by a piece of data. Doing so unnecessarily confuses Maple technical terms with vernacular.

The Maple term datatype is different from the Maple term type. The term datatype refers to a restriction on rtables as to what they may contain.

Contrary to what your commentary suggested, it is not true that an Array would have a particular datatype just because an entry you extracted from it satisfies a particular type.

A := Array([17.0],datatype=float[8]);

                  A := [17.]

type(A[1], float[8]);

                    true

B := Array( [HFloat(17.)] );

                  B := [17.]

type(B[1], float[8]);

                    true

rtable_options(A, datatype);

                   float[8]

rtable_options(B, datatype);

                   anything

So you cannot "confirm" that the datatype of an Array is float[8] just because one of its extracted scalar entries satisfies a particular type. That simply does not follow, and the above is a counter-example.

I didn't write the original Question example, which used Array(1..100,SX(100)). In that example the result from SX(100) is a Vector[row] that has datatype=float[8].

The rtable constructors such as the Array command implement inheritance of hardware datatypes, unless dictated otherwise by the settings of UseHardwareFloats and Digits. So Array(1..100,SX(100) will inherit the same hardware datatype as SX(100).

restart;
X:=Statistics:-RandomVariable(Uniform(0,1)):
SX := Statistics:-Sample(X):
op(0,SX(100));

                 Vector[row]

rtable_options(SX(100), datatype);

                   float[8]

op(0, Array(1..100,SX(100)));

                    Array

rtable_options(Array(1..100,SX(100)), datatype);

                   float[8]

I do not know why the the Original Poster of the Question decide to cast each Vector[row] rtables from SX(100) into an Array. But he did. I simply wrote a compilable procedure that would accomodate that.

I would agree with the sentiment that it is confusing that the Help page for Statistics,Sample doesn't explain clearly what datatype the result will have (it only has an explanation of a special calling sequence, where one supplies the container for in-place computation).

@r66 But do you think that you had the equations correct, as you really did intend?

@ActiveUser In modern Maple the last line below could be,

   display(listplot~(LL,color=~([red,blue,green])));

But you have a much older version.

(Unfortunately you didn't provide the lists, so I have to make them up in order to show the example all done.)

restart;

with(plots):

L1 := [seq(x,x=1..10)]:

L2 := [seq(x^2,x=1..11)]:

L3 := [seq(x^1.4,x=1..12)]:

LL := [L1,L2,L3]:

display(zip(listplot,LL,zip(`=`,color,[red,blue,green])));

 

Download listplots.mw

@radaar Give all three Arrays datatype=float[8].

Or don't Compile the procedure, and remove the datatype=float[8] from its three parameter specifications. (Of course that will be slower, but that was one of the earlier key ideas.)

The arguments passed to the procedure must be of the types in the procedure's parameter specification.

@radaar Yes, you get the error *because* you removed the float[8] datatype and the compiled procedure needs it.

Whatever else you might be trying to ask is unclear to me.

@radaar The procedure was written for Arrays with float[8] datatype. The original example has such Arrays. You followup example does not.

The key is in the error message (ignoring the part about what it received, which is unfortunate). It states that it expects a hardware float[8] rtable, and that's not what you are passing to it in your new example.

 

The addition and subtraction of the same multiple of x in the last equation (and other absence of automatic simplification) is indication of a cut&paste job.

It remains to be seen whether the OP might have made a transcription mistake, or might want a best fit (LeastSquares, say, easy enough after using GenerateMatrix).

First 157 158 159 160 161 162 163 Last Page 159 of 591