Scot Gould

Scot Gould

1039 Reputation

15 Badges

12 years, 95 days
Claremont McKenna, Pitzer, Scripps College
Professor of Physics
Upland, California, United States
Dr. Scot Gould is a professor of physics at 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

Given that symptoms do not appear until 4-5 days after a person has been infected with the virus, SARS-CoV-2, and during that time, the person is contagious, and given that the average period between symptoms appearing and death is about two weeks, it may be several weeks before the death rate returns to its exponentially increasing behavior. And by that time, a significant greater percentage of the population will have been exposed. 

So, what is the cap? Based on the data provided by NY, by April 23, 14% of New Yorkers had been exposed to the virus, and approximately 0.1% of all New Yorkers had died from COVID-19 – both confirmed and probable. My math suggests 0.8-1.2% of all humans could die from the disease. That is until a vaccine is created and disseminated.

My interpretation of the original meaning of the term "flattening the curve" is not of total cases, but of new cases. The concern was that without a change of behavior, the number of new cases, thus deaths, would be a curve with a large positive exponential constant, which is essentially based on the R0 value. This would overwhelm the healthcare system, like it did in some countries and locations in NY state. Rather, by reducing the R0 value, new cases would peak later, and and the graph would be flatter, but longer. I suspect you are correct folks are now interpreting "flattening the curve" as the total number of cases. In the US, that is not happening. I borrowed this simple graph from a 6 week old presentation by Michael Lin at Stanford. https://kottke.org/20/03/excellent-presentation-on-the-latest-covid-19-research-hygiene-tips-and-treatment-options

P.S. Thanks for posting the data. I was modeling it up to 10,000 US deaths and it was frightening then. At that point, the graph was increasing by an order of magnitude every week. The US was about 1 week away from 100,000. But social distancing made a significant impact.  Note, the CDC redifined the number of dead to include not just those confirmed using the virus test, but those who probably died from COVID-19. All death counts increased significantly that day.

@acer You were correct. Maple was being too efficient. After randomizing the limits during each call, the times were more understandable: evalf(Int(..)) was the quickest, int( ) with floating point limits and using integer limits and the numeric option, which I really like, required a bit more time : 7..12%. And even then I'm wondering if some of that is due to memorization.   

@Kitonum Your response caused me  to be curious about what is under the hood of Maple.

I was unaware of the "numeric" option in the int command. I had always assumed that the only way to calculate numerically is through evalf(Int()). This lead to the question - in terms of calculation speed, does the format of the call matter? Based on calculating this function 10,000 times, Maple 2020 showed:

* evalf(Int()) is the fastest
* int(f(x), x=1.0..100.0) requires twice as much time as evalf(Int())
* int(f(x), x=1..100, numeric) requires 3 times as much time as evalf(Int())

Since all 3 complete one integration essentially instantaneiously, it really doesn't matter here, but if speed is essential, are these results constant with the design of Maple? Is there an alternative form that is superior?

@acer Thank you for the explanation of name quotes. I followed up with looking through Chapter 2 of the online Programming Guide.  I appreciate your patience with my ignorance and perception.

@Carl Love 

1. New to me, obviously. I'm glad I did not pull my question once I realized the multiple-dimensions possibility.

2. ifelse fits the bill. I understand the left-quote is used to demarcate names and won't be going away. 

@Kitonum 

The solution you provide is logical and after playing with it, I understand every line. However, it raised two thoughts for me as someone who attempts to promote Maple in the classroom.

* IMO the call of lhs(op(v)[1]) and rhs(op(v)[1]) looks really clunky and non-intuitive. Would not functions like "LowerIndex", "UpperIndex" in the ArrayTools package might be useful given how frequently this type of call tends to be? (Historically, I have tried to make all Arrays start with 1 to avoid having to deal with non-traditional index bounds.)

(Upon further review, maybe it is already, but only slightly less clunky: lhs(ArrayTools:-Dimensions(v)[1]), rhs(ArrayTools:-Dimensions(v)[1]). This maybe the best one gets given the fact that Arrays are multidimensional.) 
 

* Is there any fundamental reason the “if” function has to be placed between two quotes, and back quotes in that? Exceptions/oddities such as having to put back-quotes around a command increases confusion and turns off potential Maple adopters.

@Carl Love  In looking at the two solutions provided, I notice the declaration of the arguments within the procedure is different.

In your answer: proc(A::Vector, Array),

In Kitonum: proc(v::{Vector, Array})

In looking at previous examples, I thought what you wrote has been standard, but it appears not to work in Maple 2020 if one passes an Array, but Kitonum's does. Did this change recently?

(Actually, I prefer the format used. The variable should be one of a "set" of possible types.)

P.S. Thanks for the feedback on my other questions. 

 

@acer 

Much thanks for your effort and detailed write up.

You confirmed my suspicion that evalf(int()) was the wrong approach. (However it appears the evalf(Int()) calculation does not execute any faster.)  I was unaware of the “mixup” in Minimization.

Q: Is this a problem with just this function (and probably Maximization) or inherit in the entire Optimization package? 

The addition of the single conditional statement clearly made the difference. I believe I interpret it as: “If the list [K,r] is not a list of numerical values then return the procedural call with the arguments included.”

Q: In Maple coding, is this the preferred technique for telling a calling function/procedure that the call failed? (This may require me do learn more Maple coding than I have historically thought was necessary.)

Q: In listing local variables, I failed to include the variable x, yet Maple did not flag it like it flagged f1 and f2 when I did not list them as local. Does not listing “x” as a local variable cause problems, or is it simply a case of sloppy coding?

And yes, it makes sense the K and r of the function is not the arguments K and r. I was unaware of the use of “:-K” as representing the variable of an expression. (Maybe I will need to learn more coding.)  Much appreciated.

Point 3) is important – I do understand. Yes, I understand why one has to play with these two values. (And why a scaling factor is beneficial.)  

One last “way down in the Maple rabbit hole” question

Q: In procedure proc4 execute nearly 8 times quicker when the “unapply” command is included within the procedure as opposed to placing that function call outside of the procedure, i.e., defining df as a function and not an expression?


 

I completely agree with Carl's suggestion. To the more novice user, when Maple returns fsolve(expression), it isn't clear if the function fsolve is misspelled, or doesn't exist. In addition to saying something like "no solutions found", add , either suggestions such as "infinite solutions" or a link to the online help page. 

@mmcdara FYI: the first worksheet does not load as it is viewed a corrupt. 2nd works sheet loads fine. 

I am unable to download it. It shows a server error.

 

@goli Does the drawing capabilities of Maple suffice? Click on the plot and then on the drawing button above the window and drawing tools appear.  For me that is the fastest route.

Did you ever identify a solution that you liked? 

@Carl Love Since your goals are different than mine - I don't have an answer, but at least you now have a way to research the RSS feeder that you desire, i.e., one that pushes notifications. A quick search shows something called EasyRSS might work. Feedly appears not to have the ability to push notifications even if you purchase the pro version. Wish I could help.

First 23 24 25 26 27 28 29 Page 25 of 31