Mac Dude

1576 Reputation

17 Badges

14 years, 120 days

MaplePrimes Activity


These are questions asked by Mac Dude

Hi, I have the feeling I ran into this before, but can't find the answer, so here goes:

I want to create an animated plot of a histogram, changing the range of data to be histogrammed. So I type:

plots:-animate(Statistics:-Histogram,[dR*~WindowN(RP0,Ci,CangleWidth+Ci),ignore=true],Ci=-0.5 .. 0.2);

The error I am getting is

Error, (in MathPad:-WindowN) cannot determine if this expression is true or false: Ci < HFloat(0.39995) and HFloat(0.0) <= -HFloat(0.34995000000000004)+Ci

What happens here is that dR is a Vector of data with RP0 being another Vector equally long. I have a library function called WindowN that returns a Vector of the same length as its argument, with 1. for the elements within the window, undefined for the elements outside. The windowing algorithm is just a straightforward if, in a loop over the elements. This all works and I get a correct Histogram plot if I set the window numerically and call Histogram. CangleWidth is preset to 0.05.

Here the window to use is supposed to be set by the animate command. I expect Ci to be set to numbers in the range given (25 points default) and prepare the plots. But it looks like the WindowN routine gets an unevaluated Ci. I tried evalf(Ci) or eval(Ci) in the arglist, to no avail. Ci is not used or set before this call to animate.

I can see how I can workaround this but I think this should work as is. plots:-animate works for me in other contexts.

Any ideas?

Mac Dude

I have two equations:

and I need to extract the coefficients of x0 and xp0 (to build a matrix; but that is not the issue). So I use coeffs:

coeffs(op(2,X),x0);

coeffs(op(2,XP),x0);

xp0

While I can live with the first result (for X) (not that I like it), the fact that the 2nd one (for XP) has a completely different structure prevents any kind of algorithmic extraction of the coefficients (and the second one of course is 0) for further use. I tried the form of coeffs with a third argument (a name which gets the result assigned) but the same result. This example is a real case, obviously a trivial one and others will be much more involved so I really would like this to work. And yes, I did "collect" before using coeffs (not that it was needed here).

Any ideas out there?

Mac Dude.

I have an expression of the following structure (the real case is much more complicate but this will illustrate):

expr:=(a+q)*A+b*q*B;

I am looking for a way to change only the first occurrence of q. In my specific case, q << a so I can approximate that instance of q with 0. This I cannot do for the second occurrence of q. Note that the trivial subs(a+q=a) does not work for my real case as a is too complicated (meaning that while in principle I can do it, it looks extremely messy and in any case would not be general).

I can probably concoct something using op(#,expr) and has, but I am wondering whether there is an easier and faster way.

TIA,

Mac Dude

An indefinite integral cancels out one differentiation:

int(diff(w(s),s,s),s)=diff(w(s),s);

But for a definite integral Maple does not recognize that:

int(diff(w(s),s,s),s=0..L) = int(diff(w(s),s,s),s=0..L);

What I would have expected is something like:

int(diff(w(s),s,s),s=0..L) = eval(diff(w(s),s),s=L)-eval(diff(w(s),s),s=0);

I cannot get Maple to recognize this even when assuming real or positive.

What I am really after is this: w(s...

I am working with a home-brewed program that evaluates magnetic fields from air-core coils. While I have analytic expressions for the field itself, the code involves numeric integration through regions of the field. It also involves adding up the contributions of several coils.

Speed is becoming an issue. I dearly would like to run some of the integrations (which is where the time is spent) in parallel. The contributions from different coils would trivially parallelize,...

First 14 15 16 17 18 19 20 Last Page 16 of 24