13,806 reputation
2563
bio website facstaff.unca.edu/mcmcclur
location Asheville, NC
age
visits member for 1 year, 4 months
seen 5 hours ago
stats profile views 1,164

I've been a professor of mathematics at The University of North Carolina - Asheville since 1997. I've been using Mathematica since I started graduate school in mathematics at Ohio State in 1989. At that time, we used version 1.1 (as I recall) to teach calculus in our Calculus and Mathematica classes. I've used it pretty much continuously in my teaching and research since then.

In addition to my posts on SE, you can find some of my papers, teaching notebooks and other Mathematica based oddities strewn throughout my website.

In recent years, I've also worked as a part-time consultant to Wolfram Research focusing on development of mathematical content for WolframAlpha.


17h
comment Having used Mathematica as a “gateway” language, where to from here?
@Ajasja Yes, definitely! I think you made some particularly valid points about Mathematica's gobbling of memory for large scale linear algebra problems. I personally, though, have some very strong, and sometimes conflicting, feelings surrounding the whole open source issue. On balance, I tend not to be swayed by that alone. That's a whole other can of worms that can't be discussed just here, though.
1d
comment Having used Mathematica as a “gateway” language, where to from here?
I'm not the downvoter, by the way, and I don't generally approve of downvotes without explanation. I'd probably upvote with reasonable explanation, for that matter.
1d
comment Having used Mathematica as a “gateway” language, where to from here?
Could you expand on this, particularly, in light of some of the comments on the original post? I don't doubt that you have value to add; I'm specifically curious how your thesis code might have benefitted from Python?
1d
comment Having used Mathematica as a “gateway” language, where to from here?
@Stefan Well, there's no question that Perl's original design was quite domain specific and it's expanded name reflects that. (That's why I referred to its "originally intended domain".) Of course, it's grown since then and it's fair to ask how well it's done at expanding into other domains. I honestly don't know, as I've not used it a lot since the mid-90s. In this regard, I think your example is not too good.
1d
comment Having used Mathematica as a “gateway” language, where to from here?
To be clear, I rather like Perl for some of the same reasons that I like Mathematica. Both of them allow you to specify a program using a very small number of symbols and figuring out the way to do so can be quite fun. I used Perl quite a bit back in the mid 90s when I was first trying to seriously interact with students over the web. At that time, CGI via Perl or C was the only way to go. However, both Perl and Mathematica are rather domain specific and I don't know that I'd use either too much outside of their originally intended domain.
1d
comment Having used Mathematica as a “gateway” language, where to from here?
I guess your primality tests are based on the regular expression primality checker. Cute, but I'm not sure that's the right code to convince the uninitiated that perl is readable. :)
May
17
comment Solving an ODE in power series
@J.M. Yes, that's definitely correct. Holonomic functions, in fact, satisfy linear ODEs by definition, which is exactly why I asked for an example, rather than post an answer.
May
17
comment Solving an ODE in power series
@J.M. Not true! It's buried in the Holonomic context
May
17
comment Solving an ODE in power series
Yes, there's a way. Do you have an example problem?
May
11
comment 3D orbits and inaccuracy over time
Very cool looking! I wonder how you might edit it to get your planets to interact with one another?
May
6
comment Implementing the Farey sequence efficiently
@Dror Well, you did ask for a functional approach and this certainly provides it. Also, you never indicated that speed was your primary concern and I see no immediate reason that it should be. The primary advantage of this approach that I see is the clarity provided by its immediate connection to the mediant. By removing the DeleteCases step, for example, we essentially recover the Stern-Brocot tree.
May
6
comment solving a cubic equation
I agree that it should probably be a comment but I couldn't help upvoting, as I think it's an interesting point. For specific irreducible cubics, you can often (always??) express the roots in this form using ComplexExpand. For example: ComplexExpand[Re[z /. Solve[z^3 - 3 z - 1 == 0, z]]]. In this case, the Re simply removes the imaginary parts, which we know to be zero anyway.
May
6
comment Custom File Palette
@beli I think I pushed him over the top!
May
5
comment Confused about Unevaluated
I agree with this analysis. I guess this behavior of Unevaluated is exactly why we use it in a case like Length[Unevaluated[1+2+3]]. An even simpler example would be f[x_]=x^2; f[Unevaluated[2]].
May
5
comment Confused about Unevaluated
Now, I'm not claiming to fully understand the whole deal here (which is why I wrote a comment, rather than an answer). I'm simply stating that Table and Map have different evaluation procedures and that's what leads to this behavior. Also, functions like Unevaluated and attributes like HoldAll are intimately connected with these issues.
May
5
comment Confused about Unevaluated
Yes. Try your "two kinds of evaluate" with Unevaluated[1+1] as input vs Evaluate[Unevaluated[1+1]] as the input.
May
5
comment Confused about Unevaluated
I'm just saying that Table evaluates it's arguments in a non-standard way and (by implication) that Map does not. Thus, when the documentation says that Map "constructs a complete new expression and then evaluates it", it does so in the standard way. Thus, Map[Unevaluated,{1,2}] produces the same output as {Unevaluated[1],Unevaluated[2]}.
May
5
comment Confused about Unevaluated
It's just that Table evaluates it's arguments in a non-standard way. In particular, it Holds it's arguments, explicitly evaluates the second argument (the iterator), substitutes values obtained from the iterator into the first argument and then (importantly!) explicitly evaluates the first argument at those values.
Apr
30
comment Nest for large value of n
@SimonWoods I believe he's interested in a specific sequence of such k, the ratios of consecutive differences of which converges to Feigenbaum's constant.
Apr
29
comment Nest for large value of n
@thewanderer I assume that you mean when n>5, but note that for n=5, your polynomial has degree 2^2^5. and it's simply not feasible to solve this using simple techniques. You should look into some of the papers of Keith Briggs to learn his extrapolation techniques: keithbriggs.info