I cannot reproduce that,
a := 4;
What do you want to do with the list? You can always convert the names to strings:
I'm not sure that you have completely described the problem. Your procedure does not declare k as local, so if A, B, or C are in terms of the global k, they will be summed accordingly:
2 2 3 2 3
(ku1 + 1) ku1 kl1 kl1 (ku2 + 1) (ku2 + 1) ku2 kl2
---------- - --- - 1/3 - ---- + --- + ---------- - ---------- + --- - ----
2 2 2 2 3 2 6 3
2 4 3 2 4 3 2
kl2 kl2 (ku3 + 1) (ku3 + 1) (ku3 + 1) kl3 kl3 kl3
+ ---- - --- + ---------- - ---------- + ---------- - ---- + ---- - ----
2 6 4 2 4 4 2 4
Is that what you want? If not, that is, if you meant k to be local, then just do
adds := proc(a,b)
Use a print statement in the loop to print intermediate results. You might also want to consider terminating the for loop with a colon so that the final result is not displayed twice. Using your example,
for i from 0 to 10 do
print(f(i) mod 11);
p := (n+2 -k)*(n+1-k):
(n + 2) (n + 1) + (-2 n - 3) k + k
The k^0 term is not shown.
I'm not sure what you want. Something like the following, where x is the variable name and 1,2,3, and 4 are sample indices (this doesn't render very well in html: 12x34.
I don't believe that is any good way to do this in Maple, particularly the indices at the 1 and 2 slots. You can fake the index at the 3 slot using a power, however, that invariably causes problems. I believe we are stuck with subscripted indices only.
One approach is to use fsolve. Its default is to restrict the solution to the real axis.
That is a good question. The call to sum returns 0 because it is summing 0. That is, the call to G is evaluated before it is passed to sum. With symbolic arguments i and j G returns 0. There are two ways to avoid that: (1) modify G so that it returns unevaluated unless its arguments are numeric; and (2) modify the usage of G so that it doesn't get fully evaluated until being passed to sum. Let's tackle these in order.
Modifying G is the more useful technique. Change it so that it returns an unevaluated call to itself when it arguments are not numeric.
G := proc(i,j)
if not [args]::list(numeric) then return 'G'(i,j) fi;
if [i,j]::list(even) then return 1 else return 0 end if;
sum( sum( G(i,j), i=0..5 ), j=0..5 );
Modify the call to sum
The usual way to do this is to enclose the argument in forward quotes.
At the user level you will need two pairs of forward quotes:
G := (i,j) -> if is(i,even) and is(j,even) then 1; else 0; end if;
sum( sum( ''G''(i,j), i=0..5 ), j=0..5 );
You might be wondering why sum isn't designed to work like add, which avoids these problems. Add is able to avoid them because it uses
special evaluation rules. Doing the equivalent with sum would not be useful, the reason being that sum is intended to evaluate summations and must be able to operate on expression generated outside the sum function. The summation index is not local to the sum. To see the problem do
y := i^2;
return [add,sum](y, i = 1..3);
[3 i , 14]
The sum returns the intended value, the add does not.
There are opportunities to embed information within an mws file, however, as Alec mentions, it is not clear that this buys you much.
For example, one possibility is to create an unnamed and unused paragraph/character style and give it unique identifier. Working on the file won't delete this style, so it should show up in the returned worksheet. Of course, the clever student (who is undoubtedly reading MaplePrimes) will know of your ploy and be able to circumvent it.
Check out ?inttrans, specifically ?inttrans,laplace and ?inttrans,invlaplace
No, it currently is not possible with the Standard GUI. It is possible to change the help page background color (see my blog). It is also possible to change the background color in the Classic GUI. You could try to change the background color of all the fonts; however, the result is not pleasing---that doesn't include a lot of area.
?define_external(COMPILE_OPTIONS). The easy way to find that is to do a text search for flag in the help browser; that page is the second hit.
You are using what appears to be Mathematica functional syntax. Maple uses parentheses to delimit functional arguments. You want sqrt(x^2-0.2^2)/sqrt(x^2-0.3^2)*(0.3/x). Note that this is an expression, not a procedure. You also wont get a numerical result unless x has been assigned a value.
There is more than one way to do this. Probably the most useful is to save the procedures/modules to a Maple repository. The easiest way to do that is to use the LibraryTools procedure. For example,
myproc := proc()
mylib := "/home/joe/tmp/mylib.mla":
mylib := "/home/joe/tmp/mylib.mla":
libname := libname,mylib:
Note that for maple to find the library, it (or the directory in which it is located) needs to be part of libname. A word of caution. If the archive (repository) is not specified, Maple uses whatever is assigned to savelibname. If that isn't assigned I believe it uses the first library in libname. That may be the main Maple library. You should verify that the main Maple library is write-protected. I don't know what the default is on Windows systems. This isn't, of course, the whole story. If you are developing modules, say, and repeatedly save them to an existing repository, at some point you will want to clean up that repository. Actually, I've found that it is frequently easier to just delete it, however, that might not be possible if you are storing procedures from other sources in it. Look at the help page for march, the Maple archive utility. Also, check out the worksheet,reference,initialization help page. It describes how to create a Maple initialization file. You can set libname in there so that all subsequent interactions with Maple have access to your library without having to explicity reassign libname.
While your integral is unreadable, the signum and csgn functions in the output are maple's way of handling missing information about e and a. To avoid them, you need to tell give maple more information, say, e and a are both positive. You can do this using assuming:
int( your_integrand, ...) assuming a::positive, e::positive;
Look up ?signum and ?csgn to see what they do.
I'm not sure what you want, but will guess that you want to plot three points, with time on the horizontal axis. The only difficulty is converting a general timestamp into a value. I thought Maple had a function for doing this, i.e. generating the epoch from an arbitrary date/time, but couldn't find it, so I rolled my own. It's crude; it ignores subtleties like leap years.
toepoch := proc(timestamp::string)
description "convert timestamp to seconds (crudely)";
dt := ParseTime("%b %e %Y %T", timestamp);
dt:-second + 60*(dt:-minute + 60*(dt:-hour + (24*(dt:-yearDay + 365*dt:-year))))
data := [NULL
,[43.69, "Apr 08 2004 10:41:45 PDT"]
,[40, "Apr 07 2004 22:48:47 PDT"]
,[32.5, "Apr 06 2004 06:13:30 PDT"]
pts := map(d -> [toepoch(d),d], data);
plot(pts, s_tyle=point, symbol=BOX);
The s_tyle should be style, however, the pre tag won't accept the word styleThe horizontal axis is not particularly useful (being in seconds, scaled from two millenia ago).