Scot Gould

Scot Gould

722 Reputation

14 Badges

11 years, 148 days
Claremont McKenna, Pitzer, Scripps College
Professor of Physics
Upland, California, United States
Dr. Scot Gould is a professor of physics in the W.M. Keck Science Department of Claremont McKenna, Pitzer, and Scripps Colleges - members of The Claremont Colleges in California. He was involved in the early development of the atomic force microscope. His research has included numerous studies and experiments using scanning probe microscopes, particularly those involving natural fibers such as spider silk. More recently, he was involved in developing and sustaining AISS. This full-year multi-unit, non-traditional, interdisciplinary undergraduate science education course integrated topics from biology, chemistry, physics, mathematics, and computer science. His current interest is integrating computational topics into the physics curriculum. He teaches the use of Maple's computer algebraic and numerical systems to assist students in modeling and visualizing physical and biological systems. His Dirac-notation-based quantum mechanics course is taught solely through Maple.

MaplePrimes Activity


These are replies submitted by Scot Gould

@acer Lots of useful ideas here. But for my version of 2023.1, factor(expr) is sufficient. The combine procedure does nothing. 

But this post leads to the next question: why doesn't the simplify procedure work? Shouldn't it try a number of options, settling on the simplest? (Of course, how does one define "simplest.")

@dharr I can still recommend to my colleague to consider GAMMA.

@acer I suspected there was more to the situation given that in playing around I couldn't get the plot to work without the form of plotting dharr had included. 

@dharr It is also clear it is how you called the plot, which is not how I tend to plot a function. 
 

restart; plots:-setoptions(size = [300, 200])

"F(q):= convert(  (100*400!*(1/(100))^(q)*(1-1/(100))^((400-q)))/((400-q)!*q!)  ,GAMMA):  evalhf(F(5.1))"

15.1978021800000000

(1)

Plot expression

plot(F, 0 .. 20)

 

Traditional method of plotting a function

plot(F(q), q = 0 .. 20)

 

with evalf

plot('evalf(F(q))', q = 0 .. 20)

 

with evalhf:

plot('evalhf(F(q))', q = 0 .. 20)

 

NULL


 

Download Factorial_to_Gamma_failed_plot.mw

@acer  I follow what you did as alternative solutions.

I agree that both the numerator and denominator generate values that are in excess of the hardware floating point representation. But I am not quite sure I understand why it failed. Is it true that, normally, Maple uses its algorithms to derive a precise number;  then, if we use evalf, it takes that number and converts it to a floating point number? On the other hand, in making a plot, Maple calls evalhf to calculate the values to be plotted, and that is where the problem occurs? (I could not find either hardware of evalhf in the plot/details help page. I'm assuming it uses evalfh for reasons of speed.)

Hopefully, I understand correctly. This leads to the next question, is it possible to change the code for plots to ensure that all data points are returned as viable from the hardware before plotting, and if they are not, then the software version of calculating the floating point numbers occurs?

@Carl Love @dharr Thank you for the clarification. And, it appears the copy only works if prev and curr are of identical dimensions.  Educational. 

@Carl Love @dharr I'm confused by the use of the word "copy" here. Neither technique will generate a new vector, which is a copy of the other vector on my version of Maple.  The only ways that I know how to make a copy are to use "Vector(curr)" or "copy(curr)". If you have a moment, please assist me to understand.
 

``

restart;
v := <1, 2, 3>;
z[] := v[];
v[1] := 99;
eval~(z);

Vector(3, {(1) = 1, (2) = 2, (3) = 3})

 

Vector(3, {(1) = 1, (2) = 2, (3) = 3})

 

v[1] := 99

 

table(%id = 36893490278911842588)

(1)

restart;
v := <1, 2, 3>;
z[1..-1] := v[1..-1];
v[1] := 99;
eval~(z);

Vector(3, {(1) = 1, (2) = 2, (3) = 3})

 

Vector(3, {(1) = 1, (2) = 2, (3) = 3})

 

v[1] := 99

 

table(%id = 36893490278911834748)

(2)

z := Vector(v);

Vector(3, {(1) = 99, (2) = 2, (3) = 3})

(3)

z := copy(v)

Vector(3, {(1) = 99, (2) = 2, (3) = 3})

(4)

NULL


 

Download Copy_Vector.mw

@Mads980h This is another reason for not keeping a copy of every single Maple file one opens. 

@C_R In Windows, the folder is under "Users/(your_name_here)/Maple/Backup"

@dharr Thank you. I try to hide most of the coding, but having Maple hide it is even better. 

If the additional procedure I am hoping could be written, it would work perfectly. 

The procedure would be something like: PrintWorksheet("filename", "PDF") 

@acer The Export and exportplot procedures are great for generating files for which each file contains, usually, one item, say a matrix or a plot.  

What I'm hoping for is to treat the worksheet as a batch file so that Maple redirects all output to a PDF.  This means I do NOT want the input code to appear in the PDF.  Currently, I must execute the worksheet and then print to a PDF using the interface. But that document includes the calls to procedures that generated the output. (I try to hide most of them as much as possible.)

An additional procedure or command would be useful. Instead of having me print to a PDF through the interface (I can't use the Export option until it gets fixed), it would be nice to generate the PDF programmatically.  My guess is what can be done through the interface should be doable programmatically. Yes?

One of Maple's best features is document generation. I use it all the time. These features would make the process even better. 

Show your effort, and further suggestions will be made.

Of course, we are assuming the calculation are in the units of radians.

@pchin  Upvote. 

An aside. The tabs in help are a significant improvement in the help environment. My request is to provide the feature of moving the tabs around like one can in the Maple GUI and on web pages. Once the movement of help pages is doable, there will no longer be a need to use the web on a computer. (But I still do refer to them on a tablet.)

@C_R  Ah yes. If one has constraints, it increases the chances of deriving a closed-form solution. I guessed the lower bound. But there was nothing in the worksheet suggesting an upper bound. Maybe I should have used 0.9*Pi/2. 

Please note that v2023 required nearly twice as much time to calculate than v2022.2.

@C_R Both spreadsheet work. However, I do agree that if you can solve symbolically any integral, go that route first. 

Note, with the inverse function problem, i.e., the second problem, the time to calculate the g(f(0.1)) was half as much with 2022.2 vs. 2023. 

 

,fsolve_document_2022.2.mw

In general, I have found using the web-based help system far more useful than the help system built into Maple. One can set up a browser to load up several help pages at once in a preferential order.  At least Maplesoft has added multiple tabs in 2023. It still isn't as useful as a browser since tabs can't be moved around, but it was a major step forward. 

To see if the situation isn't just "one page" not being updated, I looked in the web-based help for two procedures and "print layout mode" which were introduced in 2022. None were there. Hence, it is highly likely the web-based help was not updated after 2021. 

First 6 7 8 9 10 11 12 Last Page 8 of 23