Joe Riel

9575 Reputation

23 Badges

19 years, 50 days

MaplePrimes Activity


These are answers submitted by Joe Riel

I cannot say I've ever depended on using the interrupt button. A better choice might be to use an embedded component toggle button then have the loop query it each time.  Something like

   do
      finish := evalb(DocumentTools:-GetProperty("ToggleButton0","value") = "true");
      if finish then
         # assign something
         break;
      else
         # assign something else
      end if;
   end do:

The usual way is

initeqs := [seq(S[i] - a[i-1] = 0, i=1..n)];

however, that assumes the constant ai is indexed rather than an inert symbol constructed via a__i. The latter can be generated with cat

initeqs := [seq(S[i] - cat(a__,i) = 0 i=1..n)];

Your notation is incorrect.  What you want is diff(T,d).

Just remove the list from fibs.  Using a list (or set) causes subs to do a simultaneous substition.  In this case you don't want that because e expands to an expression in terms of c and d, so you need to first substitute for e, then for d, then for c.  So use
 

fibs := ( e = c + d,  d = b + c, c = a + b ):  # changed brackets to parentheses

There is a package, UTF8, on MapleCloud (coincidentally written by myself), that will compute the length of the string treating multi-byte characters as single characters.

s := "décember"):
S := UTF8(s):
length(S);
                     8
Substring(S,1..2);
                   "dé"

The problem is the loop.  Because you are terminating it with a semicolon, the assignment to Y is being sent to the print stream; you can see this by commenting out the writeto statements. Because this is being run in the GUI the output is converted to typesetting stuff. To turn that off, just terminate the loop with a colon, that will suppress the undesired output.

Another approach is to use complex values. For example

unit := x -> x/abs(x):
road := t + I*(t^3+2*t^2):
edge := road + unit(diff(road,t))*I:
plots:-complexplot([road,edge], t=-3..2, constrained);

The third and fourth arguments to BinarySearch are optional.  If you do supply them, they must correspond to strict less than and equals, respectively.  These would only be supplied if needed, for example, if the elements in the list required a special test. In your case, because the elements are numeric, just use the defaults:

L := [2,3,4,5]:
ListTools:-BinarySearch(L,3); # --> 2

It returns the position (index from 1) of the element in the list. That is, op(2,L) = 3.

For labels you can use html.  For example, change the caption to

<html>&alpha;</html>

About the simplest solution is

rangetolist := rng-> [seq(rng)]:

Adding a type declaration to the formal argument

rangetolist := (rng::range) -> [seq(rng)]:

A somewhat more restrictive type declaration

rangetolist := (rng::(integer..integer)) -> [seq(rng)]:

To handle a range that may decrease

rangetolist := (rng::(integer..integer)) -> [seq(rng,-sign(`-`(op(rng))))]:

Haven't actually tested these...

Another approach

subsindets(A, specfunc(v), f -> subs(t=tau,f));

For fans of minimalism,

subsindets(A, specfunc(v), eval, t=tau);

An alternative, to avoid using an indexed name, is the following (entered as 1D Maple input):

`f__&alpha;,&beta;`;

Because typing such variables is time-consuming, I'd consider defining macros or aliases for them. For example

macro(fab = `f__&alpha;,&beta;`):
fab/(1 + fab);
         fα,β/(1 + fα,β)

@Alger A call to evalc will simplify the results assuming any unknown variables are real.

simplify(evalc(Re(Z)));
     (w^2*Rs*(Lm + lpr)^2*g^2 + w^2*Lm^2*Rpr*g + Rpr^2*Rs)/(Rpr^2 + w^2*(Lm + lpr)^2*g^2)

The assignment statement to M1 has no semicolon at the end. Also, the assignment to result__1DP has some weird issue.  To resolve it, select the entire worksheet, convert to 1D Math input (right-click, select Convert To --> 1D Math Input) and manually fix the weird solve (you'll see it). 

Am not sure exactly what you want.  I'm not familar with that package, and after downloading it, am surprised it doesn't provide a way to list the available profiles.  Regardless, with a proper debugger it isn't hard to figure it out.  Here's how you can get a list of the profiles.

kernelopts('opaquemodulues'=false): # allows accessing local members of module
tmp := [indices]( AISCShapes:-AISCTable,'nolist'): # get the indices to the data table
lprint~(sort(tmp)): # sort and print them (just for checking).

You could assign this list to a combobox or listbox, however, given its length I think there may be better options.

First 11 12 13 14 15 16 17 Last Page 13 of 114