Group Abstract Group Abstract

Message Boards Message Boards

8
|
63.9K Views
|
55 Replies
|
95 Total Likes
View groups...
Share
Share this post:
GROUPS:

What are some real-world applications of Mathematica?

I originally posted this on Stack Exchange, where it was suggested it would more appropriately be posted here. The only "real-world" application that meets the specified criteria offered so far (twice) has been Wolfram Alpha (I am not entirely sure that it meets the second criterion - would you choose to develop WA in WL, if you didn't have a bunch of WL experts and a WL development platform at your disposal?). In any event, I am interested in hearing about other real-life applications....

I have a theory, which I am in the process of writing about in a blog post, that other than in applications in mathematics (symbolic logic), Mathematica's primary usefulness is in encouraging a kind of intellectual dilettantism. (Of course, one man's dilettantism is another man's New Kind of Science: i.e. the speculative endeavors of a fertile, creative intellect might readily be mistaken for actual (scientific) achievement by less agile minds.)

I don't want this conjecture to be true: I'm as much a buyer of the hype around Mathematica as the next man. But I have noticed that, in practice, Mathematica somehow fails to live up to its apparently unlimited potential for encapsulating creative thought-product across an almost unlimited span of human intellectual endeavor. In my own work in finance, for instance, it has generally proved much less useful than other products such as Matlab. And, in general, when I look at the examples cited by Wolfram in its "customer stories", my reaction to many of them is: "Sure, you can use Mathematica to do that. But why would you, when there are much better alternatives available?". To take one such customer story from the field of 3D CAD, I don't understand why anyone would prefer to use Mathematica for such a task, rather than a specialist product like Solidworks.

I am aware of applications where the use of Mathematica is fully justified. In my own work, I have used Mathematica to price complex derivatives products, a field in which it excels. Likewise, I am somewhat familiar with Phil Zecker's work at EQA Partners, where he produced an outstanding risk management solution using Mathematica. In both these cases, however, there is no standard, specialized alternative offering in the field of risk management, as there are, for example, in engineering, CAD, app design, or music. In these areas, it seems to me, Mathematica is like a Swiss Army Knife: sure you can use it to dabble in almost anything; but I have screwdrivers, knives and corkscrews that do a better job for their specific purpose.

In any event I am looking for counter-examples of real-world applications to refute my hypothesis about Mathematica. By "real-world" I mean specifically applications in which:

(i) money changed hands (e.g. a commercial product was sold, or consulting fee earned) ; and

(ii) an alternative solution was considered and Mathematica preferred for specific reasons ("it was the only software we could afford or that was available to tackle the job", is not a valid reason to qualify the application as real-world, according to this definition)

POSTED BY: Jonathan Kinlay
55 Replies
Posted 10 years ago

I have degrees in EE, math, and physics, and have worked in engineering disciplines for about 45 years. My work has included electronics engineering, embedded system programming, material science, optical engineering, and physical modeling. The first years were done with Fortran and a slide rule. The last 20 with computer tools which have become more capable each year.

For the past 10 years I have worked mostly as a consultant in optical design and physical systems modeling. I use Zemax OpticStudio for lens design and Comsol Multiphysics (an FEA tool) for mechanical, electrical, and thermal modeling. They are each better at what they do than Mathematica.

I have been a Mathematica user for a bit over 20 years -- since version 2.

First, if all Mathematica did was "encourage a kind of intellectual dilettantism," it would be well worth the price. I have been an intellectual dilettante my whole life. Always interested in some new thing, often around science and mathematics. For me, it's the only kind of life worth living. And Mathematica's contribution to this has been enormous. And this has been a very practical endeavor. These entertaining explorations have almost always found a use in some later for-pay endeavor.

However, to specifically address the question, here are some practical uses I have made of Mathematica:

  1. Optical design tools rely heavily on optimization capabilities. But you cannot just give them some arbitrary starting point and expect good results. The first part of the job is to use prior work or first principals to define a design which roughly meets the various system requirements. Optical matrix methods are well suited to this. I use Mathematica to describe propagation of a few trays through a trial layout. I can even include unknowns in the symbolic description and solve for them to gain insight, or to solve roughly for element positions and focal lengths.
  2. With the same tool set, once an optical design has been done, it needs to be toleranced to predict the performance which will actually be obtained given manufacturing uncertainties. I use Mathematica to analyze the output of Monte Carlo runs to develop survival statistics which relate yield to the choice of specifications and binning.
  3. In the most recent release of OpticStudio, there is a .NET API. I will certainly continue to use the tools user interface for design work ans simple analysis. But I am now driving OpticStudio from Mathematica using NET/LINK for more complicated analyses of design behavior.
  4. In another job a few years ago I was modeling a piece of semiconductor equipment as it goes through heating and cooling processes. For this purpose, the system was adequately describe as coupled heat reservoirs, each of uniform internal temperature, coupled by thermal conductivities. Its really an easy problem of 1st order diffeqs. A complicated tool could have been used, but I had a useful model, with T vs time graphs, in minutes.
  5. For the same company, I spent a great deal of effort analyzing defectivity in a wafer-scale manufacturing process, seeking cause. Mathematica is a great tool for that.
  6. I recently needed an amplifier capable of driving a 10 uF load capacitance from DC to 50kHz. I used Mathematica's control system tools to design a feedback network to stabilize a commercial audio power amp IC for those specifications. At the start of my career, this would have been done with Laplace transforms and a slide rule. With Mathematica, the step response of this design on my oscilloscope looked just like the graph output by Mathematica.

This is a few of the concrete uses I have made of Mathematica in the past few years. But it does not come close to describing it's true usefulness. It somehow gets opened up early in any piece of work, and not closed until the end of the day. One very important reason for that is that, at its heart, it is a symbolic math tool. For me, the first step in looking at most problems is to look at the mathematical dependencies. This means looking at equations and relationships in symbolic form. After that, even more intuition can be gained by trying real numbers and viewing these relationships graphically. Mathematica excels at both these tasks.

I also have had the experience of seeing Mathematica fail to take hold in an engineering group. It seemed to center around three issues. The first was a threshold between starting up and obtaining a result. I have seen a lot of engineers trying to get a simple graph for an afternoon meeting go to Excel in frustration. Or because they had trouble importing data to begin with. These issues have been getting better, but WRI needs to do a better job of providing start-up training online. The collection of training videos on the Wolfram site needs a complete overhaul. The second issue is making the transition from a procedural language (like C) to the functional programming paradigm. This is something that is difficult to demonstrate in a completed notebook -- it's about the process, not the end product. The third issue is the deplorable lack of debugging tools. This is especially a problem when you need to develop a large single function in a single cell. (a result of the functional paradigm) The usual suggestion is to insert print statements. REALLY? This is how we debugged our Fortran programs 40 years ago. Modern programming tools have had good debug environments -- single step, watch lists, breakpoints -- for ages. And engineers are used to this. This has been completely neglected by WRI. Workbench is poorly documented, and so lacking in commitment and support that you have to ask for a beta Workbench 3 just to get it working with version 10. There is a built-in debugger, which is also poorly documented. I inquired about it from tech support a year or two ago -- They suggested I use Workbench. This is a very important issue. New engineering users which encounter such a primitive debug environment will consider the tool disqualified. Mathematica is a great tool. Getting new users over the threshold, to the point where they see benefits, should be a priority.

Best regards,

David

POSTED BY: David Keith

I used Mathematica for the launch risk analysis for the Cassini mission to Saturn. Perhaps that should be regarded as an "other-world" application. My role was the uncertainty analysis. I used Mathematica for prototyping calculations and for separating variability from uncertainty.

POSTED BY: Frank Kampas

"Intellectual dilettantism", I like that! I tend to call it "Geeky bagatelles".

I've sold around 300 copies of several Mathematica applications and done a little paid consulting - but it is far from a living. I know there are people who have appeared on this forum who earn money through Mathematica consulting. There are many more who use Mathematica in their work but many of them say it is very difficult to get others in their company to use it.

Then we should keep in mind that research and exploration, even if not profitable now, may have a significant impact on the future. "What is the use of a new baby?" and "Someday Sir you will tax it." and all that. Just from reason and knowledge of Mathematica's features it should have a greater impact.

But it's not having a significant impact. Just one example is the publication of physics documents. I haven't done a thorough search but I suspect that you won't find a single Mathematica notebook or CDF document on physics archives. Mathematica notebooks with their active and dynamic capabilities should, by all rights, blow static PDF documents out of the water! But Mathematica hasn't even gotten its toe into the water.

The real question then is: Why doesn't Mathematica have a greater penetration in science, education and the commericial world? This is a problem to be solved. If Wolfram Research doesn't see it as a problem then it won't be solved. Mathematica aquires more nice features with each version but this hasn't solved the problem. Here are some of my suggestions, for what they're worth.

1) Mathematica and the Wolfram Language are difficult to learn. This is mostly because of the sheer size of it. The core is pretty good and the edges are pretty ragged. WRI has done a lot with documentation, but they could still do more. One thing they might do is to give users freer access for adding to the documentation, maybe like Wikipedia. More practical examples might help a lot. Just formalistic usage and then jumping to a complicated "Neat Example" is not always sufficient. To give an example: while answering another recent posting on Wolfram Community I started using the ExtractArchive routine. This sounds very nice. It can extract a zip file and install an application on the user's computer. But then it turned out that it was very limited. There can be no files in the existing extraction folder else it completely fails. This means it cannot update an application, such as can be done if one downloads a zip file and unzips it with WinZip. I checked its options and found CreateIntermediateDirectories, but without any explanation of what that means. One can't delete the application before using ExtractArchive because there may be important files there that are not updated. One has to do a little research project to find if a routine works or not, and sometimes it doesn't. There are too many routines like this that just pretend to be useful but in fact are not.

2) Mathematica graphics is extremely difficult, cumbersome and convoluted! It is a major negative. I've communicated with many people who complained about it. Its main flaw is that it's designed from the top down with scads of plot routines with little correlation. Lots of choices but if you don't want to accept one of their choices you are pretty much stuck. The sad thing about this is that Mathematica opens the possibility of more innovation in graphical presentation but their paradigm chokes it off. My best selling application, Presentations, was based on the idea that in graphics "everything is a graphics primitive". It would extract the graphics primitives from higher level plots so that you could directly combine them with other primitives and graphical directives. The paradigm was more like drawing on a sheet of paper, one thing after another by specifying the primitives. Users seemed to like it a lot.

3) Mathematica is not as stable over versions as they nonchalantly claim. I think I read a claim that Mathematica 10 would run a Mathematica 2 notebook. Maybe, but not necessarily a Mathematica 7 notebook. The graphics paradigm comes to mind again. It is not at all uncommon to extract information from a graphic by extracting primitives. Roman Maeder was showing how to do it back in Mathematica 2. However, WRI keeps adding new graphical structures and changing the old ones and that breaks a lot of code that depended on it. Sometimes it might be worth the price but often it's just ad hoc. And sometimes WRI introduces new problems. An example is that Graphics3D has an option Lighting. It no longer works. Instead Lighting options must be put in the specification of each surface drawn. Serious Mathematica users cannot live with this kind of stuff.

4) "Mathematica somehow fails to live up to its apparently unlimited potential for encapsulating creative thought-product ..." Exactly, but there are only a very few who think this way. I've written an essay at my web site where the second sentence is: "This essay is directed to individuals who are using Mathematica to develop a base of knowledge and a set of capabilities centered on some subject matter." It's a way to accumulate knowledge and capability, preserve work and communicate with colleagues. Perhaps it is too difficult for most users. Although the basic layout has been designed by Wolfram Research, and its a good one, they have not entirely smoothed the path. For example, many users have difficulty with style sheets. Style sheets for an application should be in the application. Mathematica will find them. But they confuse users with an Install Style Sheet button that will not install the style sheet in the application. Before Mathematica 6 there was a documentation system that was available to everyone because it simply used a txt file - not as good as the present system but not bad either. The documentation system is no longer available to everyone but only those who have Premier Service. It uses Wolfram Workbench 3. This is not even a regular product but is obtained by special request. That indicates to me that there are probably not many users actually using it.

5) The Wolfram Research business and pricing model gets ever more complicated. I know of one academic who, because of complications, just chucked Mathematica because they didn't have what they needed when they needed it. Another part of the business model is the question of who is going to develop the Applications: Wolfram Research or independent developers? I think it should be independent developers because Wolfram Research can't be experts in everything. By not strengthening and easing the core part of Mathematica for creating Applications they are losing this resource. When I looked into marketing some of my Applications at WRI they wanted 80% of the sales price, just for providing a blurb and download link. That's ridiculous, this isn't book publishing! I went with the Kagi store, which takes 10% and provided better service.

6) Diffuse effort. Instead of perfecting the "Application" model for building capability over time, Wolfram Research has been drawn into many other endeavors. Many of them have excellent merit but altogether it may be too much to chew at once. Some of them are a bit silly such as converting 140 character Wolfram Language programs for Twitter. And why should all Mathematica computing be drawn to the cloud, instead of just retrieving small pieces of information?

I will not go directly to the application topic, since I think that some background is of interest. Also, I don't have one specific application, but I will actually be talking of the application I do of it. So, I'm on the category (from David Park answer):

There are many more who use Mathematica in their work but many of them say it is very difficult to get others in their company to use it.

I work at the engineering department of a big commercial company, on the area of water treatment (we design, build and operate water treatment plants). I'm not a programmer, and my formal training (and day to day work) is on sanitary engineering (a specialization of environmental engineering).

Our typical engineering tools are MS Office and CAD softwares (besides some other specialized commercial softwares for very specific tasks, plus an ERP, etc.)

On most of my use of Mathematica, I can't say that it would be the unique solution, but, for me, it is the most productive solution, both in time and cost (which is the same thing, but also not exactly).

I basically started to use it as a MS Excel substitute, or an Excel on steroids. Excel is probably the most used tool in the engineering environment. It is so ubiquitous that, when a client, partner or supplier asks for some particular calculation share, they are expecting a MS Excel spreadsheet, and nothing else; no need even to discuss on it. But, as soon as we want to evolve on our use of this calculation tool, it starts to become too much of software engineering (inventing strategies to accomplish things that it was not designed for) and not our own field engineering. I think of this limitation as equivalent to trying to build the ultimate slide ruler, linking lots of sliders, rotating disks, translation curves, etc., into a single cardboard..., when computers are available... (its a mental image I have..., that kind of graphically shows the absurd limitation). I have tried Matlab several times in the past, but never found it adequate for my needs (I guess it depends a lot on the details of what the person exactly does).

Introduced to Mathematica 5.2, I started using it more and more, and, at the same time, adventuring more and more on computation fields that I would not have dreamed of. And yet, I have been working on the same engineering field for the last 17 years.

While using Mathematica, I started to see my thinking process change, I would even go to the point of saying: radically change. I passed from one variable to full space exploration, and from (fictitious) exact engineering, to taking into consideration uncertainty and measuring the risk.

Here's a time sequence that, while being false/simplified, in someway explains the use I gave and give to Mathematica:

  • prototyping tool for algorithms being programmed in VBA (simple programming)
  • exploration of analytical solutions for some differential systems (true CAS)
  • package development for some calculations, substituting Excel on the daily work, but not package selling (automation, more sophisticated programming work)
  • Dynamic interfaces for client exploration of our design concepts (Dynamic, Manipulate, etc)
  • CAD interfacing for direct calculation of 3D networks (graphs functionality, etc)
  • analysis of temperature, humidity and wind direction at multiple sites. As a funny example, for instance, checking wind direction predominance, to determine floating debris accumulation points, on slow flowing water systems. (use of the online curated databases)
  • image processing of 2D data acquisitions from laboratory experiments (use of the image processing capabilities)
  • machine learning algorithms for multiple tasks, including on image data / film processing (use the machine learning new capabilities)

Obviously, this is a very short list, and does not exactly reveal all the uses I gave to it since version 5.2. But I think that one interesting thing it reveals is that, along the addition of functionality, I have added the new fields into my daily work AND NEED, while still being on the same job.

Would I have guessed that, one day, I would be applying machine learning and image processing to my daily work? Definitely not. It is not my core field, and very far from it. So, is it a real need or a need that I have invented? I think that there's no actually distinction of those two, but I can say that the use is real, and the cost (learning curve) / benefit has been extremely advantageous (when I say learning curve, I'm thinking on it being so short for the new fields that are added, that I can just apply them without actually thinking that I'm learning them). Do I really learn this new fields to the point that I can say that I master them? As with most other tools, in order to avoid mistakes, its application needs some intelligence. But, I think that the equilibrium I'm getting is of extreme benefit.

You mentioned CAD capability. Does it make sense or not that Mathematica goes in that direction. I can say that I'm eagerly waiting for a more complete regions framework (mesh and non mesh being mixed by boolean operations, etc.), and for it to be faster, for a very specific need I have on the CAD world; and I can say that I'm pretty much at ease with CAD software, working, on average, at least one hour per day, and having programmed some add-ins for some CAD packages). Of course that Mathematica is (currently?) extremely far away from covering the functionalities of CAD tools. And also that CAD tools are currently very far away from covering computational environments' functionalities. And, although connection seems the obvious solution, some particular applications (like mine), work better if the integration is absolute. I'm even thinking on candidating to the next Wolfram Innovation Summer School, to help me on one of my less standard projects.

So, although I haven't mentioned on my list: Regions, FEM, and other of the new stuff, I know that for a lot of them it is just a matter of a few more months for me to start to need them... Some I haven't used because they are still not well fine tuned. Others, like FEM, are a little away from my preference, which would have been FVM, but still a good addition, for which I have practical uses in mind.

But, for instance, why don't I just use a specific image processing tool from the market? I think that the answer is integration. If it is integrated on a well known environment, I can just start using it, with a very favorable learning curve, and mixing up with other fields, without being a programming specialist.

To answer directly to your post:

applications in mathematics (symbolic logic)

Not my case

Mathematica's primary usefulness is in encouraging a kind of intellectual dilettantism

I don't think that this is my case. I apply it to real life cases, from which I take monetary benefit, on a very competitive environment.

of the hype around Mathematica

I have always found it interesting that one can use superlatives for a lot of products, including a lot of software products used on the engineering field (of any kind and any cost), and yet, for some other products, its use is judged abusive and offensive. I guess this comes from the duality and the distance, on many aspects, between the commercial and the academic world.

Mathematica somehow fails to live up to its apparently unlimited potential for encapsulating creative thought-product across an almost unlimited span of human intellectual endeavor

I think that all tools are doomed to fail on such a big phrase. But, I give credit for trying, and also, for not being so far away from the target (in relative terms). Considering that I make real use of some functionalities that I never thought I would be using, I think that the tool has achieved something. Do I see shortcomings? Yes. A lot. And yet, I just keep using it.

(i) money changed hands (e.g. a commercial product was sold, or consulting fee earned) ; and

Working in a commercial environment, on the modern world, while producing something that doesn't bring money back, is currently impossible. So, my work with Mathematica is being consciously paid for.

(ii) an alternative solution was considered and Mathematica preferred for specific reasons ("it was the only software we could afford or that was available to tackle the job", is not a valid reason to qualify the application as real-world, according to this definition)

Alternative solutions are constantly being used by my peers. I have used alternative solutions, and I'm forced to go back to them from time to time. And I can't emphasize more the "forced" word.

And, from David Park's answer:

1) Mathematica and the Wolfram Language are difficult to learn.

I think that difficulty is relative. I think that it has to be seen as an effort / benefit ratio. What happens is that the effort is not always possible. But passing away from the benefit is less and less affordable.

One thing they might do is to give users freer access for adding to the documentation, maybe like Wikipedia

I agree. Like two sections: WRI and Community section

3) Mathematica is not as stable over versions as they nonchalantly claim.

Probably true. I, myself, prefer a good design to a backwards compatible design. I think that this depends on how you use it. If we make a lot of development on it, having to review it every single time there's a new version, can indeed be annoying. It's not my case, and I actually wish they were more actively correcting not so well design features.

6) Diffuse effort. Instead of perfecting the "Application" model for building capability over time, Wolfram Research has been drawn into many other endeavors.

Indeed. Although, its clear that what is currently presented is a product that can cover many more user applications, and that, because of it, starts to get more known. Eventually new users bring money, and money brings development resources. I think that adding new entire fields, from one version to the other, is great. It is probably the balance between the maintenance of the existing ones and the development of new ones that is not fine tuned. On my personal case, what borders me is the fact that many bug reports (the ones that are really bugs), take so many versions to get fixed (and I'm talking of bugs that do have a fix, and not bugs that are on the edge of human knowledge). I have hope on the new momentum the fast release track has brought, and I'm just hoping for that equilibrium to be found.

So, some conclusions:

  • I use it on a commercial environment.
  • It allows me to do things that I couldn't do before using it.
  • It has been fun to follow Mathematica development, and to belong to its community of users.
  • Some fine tuning (including less bugs, etc), is in need...
  • ... and yet, there's still a lot of functionality and entire fields that I'm missing.

And, as Conficius said:

Choose a job you love, and you will never have to work a day in your life.

Mathematica helps a lot on that direction.

POSTED BY: Pedro Fonseca

I challenge you to make the last graph of yours in Excel and in 10 'lines'! I think you just proved that it is really easy, all your examples are like 10 lines! I don't know any other software that can do that and still be reasonably readable and adjustable with such low amounts of lines.

Yes sometimes you have to wrap a Graphics around, and yes it is better to stay away from Epilog/Prolog if you combine some graphics, there is always room for improvement. But knowing that, i think it is very easy. I think your examples proof my point more than disproof it...

POSTED BY: Sander Huisman

The reason to choose CDF over PDF would be a desire to include interactive functionality. But if you publish a paper as a PDF, you can still offer a link to additional material: A Youtube video, an app on your website, or maybe a publication on the Wolfram Demonstrations Project (hey, why not). And yet, with a traditional paper, you're on the safe side: People who think that the interactivity is too flashy and maybe not entirely super serious can just ignore the link (relax, it's just a footnote, the actual paper is totally super serious).

That aside, most researchers are just not free in how and where they publish: If it's not in the "usual suspects" group of journals (preferably with a high impact factor) and you can't find it through the field-relevant search portal, you might as well publish on the sidewalk. In chalk. Before the rain.

For more informal communication (e.g. direct exchange between coworkers), a Mathematica notebook will often do just fine, and generating a good-looking CDF is a bit of an unnecessary step. And if your coworker doesn't use Mathematica, you're better off finding a data and presentation format that both of you can actually edit.

POSTED BY: Bianca Eifert

Sander, You show simple examples that work, but then if one deviates a little from them they don't work. here is a simple graphic done in Presentations using graphics primitives.

Draw2D[
 {{GrayLevel[0.8], Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]},
  {Red, Draw[Sin[x], {x, 0, 2 \[Pi]}]},
  Text["Sin", {\[Pi]/2, 0.8}],
  {Darker@Green, Draw[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]}]},
  Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]},
 Frame -> True]

enter image description here

It's pretty simple. You just draw one thing after another. The curves are converted to graphics primitives. We can set up the applicative graphic directives before drawing the curves. To me this is intuitive. I don't know how others feel.

A newbie might not know he has to put directives in an option or that he has to wrap primitives in Graphics. But let's say he figures that out and learns about Epilog. He might try this:

Show[
 {Graphics[{GrayLevel[0.8], 
    Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]}],
  Plot[Sin[x], {x, 0, 2 \[Pi]},
   PlotStyle -> Red,
   Epilog -> Text["Sin", {\[Pi]/2, 0.8}]],
  Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
   PlotStyle -> Darker@Green,
   Epilog -> Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]]},
 Frame -> True]

It doesn't work. The Text items don't appear. Why not? I have no idea why they both are missing.

The newbie has to figure out how to do it as follows - with a lot of graphics level jumping.

Show[
 {Graphics[{GrayLevel[0.8], 
    Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]}],
  Plot[Sin[x], {x, 0, 2 \[Pi]},
   PlotStyle -> Red],
  Graphics[Text["Sin", {\[Pi]/2, 0.8}]],
  Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
   PlotStyle -> Darker@Green],
  Graphics[Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]]},
 Frame -> True]

Or this, which changes the AspectRatio used:

Show[
 {Plot[Sin[x], {x, 0, 2 \[Pi]},
   PlotStyle -> Red],
  Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
   PlotStyle -> Darker@Green]},
 Prolog -> {GrayLevel[0.8], 
   Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]},
 Epilog -> {Text["Sin", {\[Pi]/2, 0.8}], 
   Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]},
 AspectRatio -> 1/\[Pi],
 Axes -> None,
 Frame -> True]

Here is a case with a Lighting option in Show. Again, you showed a simple case that worked. But this does not work. The Lighting specification is not used.

Show[
 {Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
   PlotStyle -> Lighter@Brown,
   Mesh -> None],
  ParametricPlot3D[{x, Sin[x + z], z}, {x, -3, 3}, {z, -2, 2},
   PlotStyle -> Green,
   Mesh -> None]},
 Lighting -> "Neutral",
 ImageSize -> 300
 ]

enter image description here

The Lighting option has to be inserted into both of the surface plots. Why? Why can't we have a one overall Lighting specification for the entire graphic?

Show[
 {Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
   PlotStyle -> Lighter@Brown,
   Lighting -> "Neutral",
   Mesh -> None],
  ParametricPlot3D[{x, Sin[x + z], z}, {x, -3, 3}, {z, -2, 2},
   PlotStyle -> Green,
   Lighting -> "Neutral",
   Mesh -> None]},
 ImageSize -> 300
 ]

enter image description here

Maybe you consider these things as trivial bits of knowledge that the user should have known. But as David Keith wrote; "I have seen a lot of engineers trying to get a simple graph for an afternoon meeting go to Excel in frustration."

Posted 7 years ago

Hey guys, just to revive this topic. I am a mathematics graduate and I have used Maple and Matlab as the university offered the license for both. I used to use Wolfram-Alpha and wasn't familiar with Mathematica, however, I got a copy of it in 2016 and started practising with linear algebra, complex analysis, number theory, several variable polynomials and general calculus. During my learning curve, I found it quicker to master and ended up doing none maths stuff like linguistics, animal data, country info, forex trading etc. I became hooked and have continued to use it even though I am not a researcher or physicist. I like how it is a blank sheet and hey presto you put the Mathematica syntax of anything properly, boom here is your answer. Comparing to Maple, I liked Maple but hated the fact you have to load a package e.g (with LinAlg) or (with differential geometry) whereas Mathematica you just type your wolfram syntax on the page and boom Bob's your uncle. With Matlab, you type in the editor sheet and then run the code..... I used it for numerical analysis and some linear algebra. Haven't bothered with it since my 2nd year and never used the symbolic toolbox.

POSTED BY: Tonde Kush
Posted 10 years ago

One thing they might do is to give users freer access for adding to the documentation, maybe like Wikipedia.

I would like to express my support to this idea. One example of another company doing this is the case of MySQL. Here you can see the official documentation for the SELECT statement and it is followed by user comments. Sometimes the comments end up being an essential to understanding the official documentation.

In regards to the original question of this thread, I work at an engineering company and I use Mathematica for:

  • Fully automated reports generation and sending my email
  • Development of tools for our internal use that run with the CDF Player (this requires the Enterprise license.)

And yes. I am sure that this could be done with different technologies, but I am also sure that it would take much longer to develop (if ever developed).

POSTED BY: Gustavo Delfino

Honestly, I think it's plain old intertia. When first walking into an environment (class or research group) where either Matlab or Mathematica is used, most people won't use the respective other program just for the heck of it. They will use what everyone else is using, which makes a lot of sense (learning and exchange). Matlab and Mathematica are just too similar to steal users from one another in significant numbers, they can both only hope to get to the newbies first and gain a foothold that way.

POSTED BY: Bianca Eifert

variability is a natural phenomenon. uncertainty is in the human mind. today it rains, tomorrow, it doesn't. that's variability. a forecast of 40% probability of rain illustrates uncertainty. Mathematica was used to "deconvolve" uncertainty from variability. http://scitation.aip.org/content/aip/proceeding/aipcp/10.1063/1.54746

POSTED BY: Frank Kampas
POSTED BY: Szabolcs Horvát

2) Combining graphics is as easy as Show[{graphics1,graphics2,graphics3,..}] which is quite easy I would say ;) I've made many many Graphs in Mathematica, and never had a problem, and where necessary I made my own plot routine, which you can, really easily. I don't know any other products that supports such a customisable and wide variety of plotting routines! You can also write by default 'like a sheet of paper' right?

Graphics[{Blue,Rectangle[{0,0},{3,4}],Red,Point[xydata], Green, Line[xydata2]}]

I would say it is not 'extremely difficult' at all! very easy, just combine the primitives and plots you like using Show/Graphics/Graphics3D ! that's it!

3) I'm not sure what you are talking about, Lighting -> Neutral works as it should:

Graphics3D[Sphere[],Lighting->{{"Directional",Orange,{{0,0,4},{0,0,0}}}}]

and has always worked like this as far as I can recall. As far as extracting parts of graphic, I always remind myself this will be version specific, the primitives it creates might be different per implementation. So if you rely that it produces Rectangles, but now it gives rectangular Polygons (in another version), that should be easy to catch in subsequent version using a new rule. But I always try to stay away from these practices, it can be done, but that doesn't mean it should be done... You should customise directly using the plot routine and then combining with e.g. Show, or Epilog/Prolog.

4) Isn't the entire documentation available online?? http://reference.wolfram.com/language/ ?

POSTED BY: Sander Huisman

Many! What about calculations with regions? How about GPS data and plotting them on maps?

How about the integrated knowledge? You need the viscosity of ethanol? Boom there it is! You need the wind direction in honolulu in christmas eve in 2004? here you go! You need the volume of dodecahedron? Done! largest building? check! Mountains? Yes! Bridges? jup! All the stuff you can imagine for any element or isotope? Sure thing! genomes, planets, volcanoes, countries, cities, calendars, aircrafts, airports, dictionary, ...... This is EXTREMELY useful. Not only do you have acces to it directly, it also is immediately in a format that you can work with, no need to import files and 'decode'....

POSTED BY: Sander Huisman
POSTED BY: Frank Kampas
Posted 10 years ago

Jonathan,

I hesitate to respond, because I'm not sure I understand your perspective. Your two criteria for "real world application" seem contrived on purpose to make it difficult to satisfy them. Your item (ii), for example, is self-contradictory. If there is no other application that does the job better than Mathematica, then why shouldn't Mathematica get credit? And item (i), is a very rigid, specific bias. Is Excel not useful in the real-world, because most users don't re-sell Excel "applications"?

Again, I'm not sure what your perspective is, but you seem to want to compare Mathematica (or Wolfram Language) to development languages/platforms that generate stand-alone applications. Perhaps that is a direction Wolfram is heading toward, but I've never viewed Mathematic in that light. Mathematica IS the product/application. There are myriad problems for which Mathematica offers a space for exploration, solution, invention, analysis, etc. At the end of all of that, if there is no stand-alone application to sell, then you dismiss it as not real-world and therefore (I infer) not particularly valuable. That's fine if that's your perspective, but why should I feel compelled to accept your perspective? Or, to put it bluntly, what's your point?

I've seen Mathematic in contexts that I consider real-world: Public school education, Private professional training, Generating assets for book publishing, Engineering problem solving, Alternative to Excel, Alternative to PowerPoint, Data analysis, Prototyping.

These observed real-world usages are mostly "accidental", in that I'm not really in a position to hunt for Mathematica in the real-world, and so I suspect that others could expand this list greatly. I don't think anyone is making a claim that Mathematica is a silver bullet that solves all real-world problems, nor that Mathematica's breadth of functionality is such that no other applications will ever be needed. So, again, I'm curious about the point you're trying to make, what actual relevant question you're trying to ask, or what methodology suggests your specific criteria.

POSTED BY: Eric Rimbey

I wanted to point up a couple of additional "real-world" applications with which I am familiar.

1) DataModeler. Evolved Analytic's genetic programming add-on makes use of Mathematica's facility with symbology to perform symbolic regressions. It is in many ways an ideal application, since its plays to several of Mathematica's strengths in symbolic representation, while adding real value to the core product.

2) UnRisk - Another Mathematica add-on that focuses on derivatives pricing (which in many cases can be handled very effectively in Mathematica as close-form analytical solutions). It looks to me as if WR made a deal to incorporate UnRisk's functionality into the core product around version 8.

Other examples are listed here.

POSTED BY: Jonathan Kinlay
POSTED BY: Jonathan Kinlay

What David Park writes is totally sensible: the built-in Mathematica syntax for graphics has definite limitations, especially for the newbie (and sometimes for the expert, too).

As to his example with the disappearing Text given in the Epilog of a Plot when combined with a Graphics inside a Show, the documentation for Show does provide the reason, under the "Possible issues" category, namely: "Show uses the options from the first graphic."

POSTED BY: Murray Eisenberg

You can produce Wolfram Language stand-alones applications that run without license via wolframscript. Apparentely very few people know it, and even less people know how to do it. I run my wolframscripts everywhere I can with no license.

POSTED BY: Pedro Fonseca
POSTED BY: Jonathan Kinlay

David Keith's post is illuminating in terms of describing his successful application of Mathematica in his work. Several of his points chime with my own experience, where I have found Mathematica to be a great prototyping tool. I think the key to Mathematica's usefulness lies in its core capabilities, so aptly described by David in his post, as follows:

One very important reason for that is that, at its heart, it is a symbolic math tool. For me, the first step in looking at most problems is to look at the mathematical dependencies. This means looking at equations and relationships in symbolic form. After that, even more intuition can be gained by trying real numbers and viewing these relationships graphically. Mathematica excels at both these tasks.

Likewise, Bianca Eifert also pointed out the usefulness of Mathematica's graphical capabilities for the preparation of figures for publication.

To define Mathematica's core capabilities only in terms of symbolic logic and symbolic manipulation, as I have done above, appears to be too narrow. David and Bianca are quite right to highlight Mathematica's graphical capabilities also, which are indeed exceptional.

I am tempted also to add Mathematica's facility for creating dynamic user interfaces. These capabilities, too, are outstanding. Where this falls down, however, is with the difficulties presented in getting such content in front of a non-Mathematica user. CDF is a great attempt at a solution to this problem, but too often fails in practice (and anyway requires the user to download and install additional software). Web and cloud-based solutions may be a better attempt, but entail further investment and development effort.

In summary, while no doubt WR would argue strongly in favor of Mathematica's capabilities across a much broader spectrum of applications, the product appears most effective in providing solutions for problems that entail:

  • Rapid prototyping
  • Manipulating mathematical symbols and equations
  • Graphing the results

I am somewhat uncomfortable with the limitation imposed by the first of these points, because it plays down Mathematica's capability to produce extremely polished, industrial strength solutions (see several of the Applications described on the WR web site for examples). However, I suspect that for the great majority of Mathematica users, the main benefit lies in prototyping rather than producing the kind of large-scale application more usually developed in languages like C++, or Java. Very happy to hear opposing views on this point, however.

POSTED BY: Jonathan Kinlay

True indeed! My previous university switched from Maple to Mathematica 1-2 years ago. So now students will 'grow up; with it (I guess). Though for the experimental physics I've seen very little usage of Mathematica, for theoretical, yes, lots of use!

POSTED BY: Sander Huisman

As far as Matlab vs Mathematica, it should be noted that there are free online courses that teach Matlab and others which use Matlab. In many of these courses, a temporary license is provided. I've suggested to the sales team that Wolfram Research do something similar but have been told that the videos provided on the web site are just as useful. I don't agree with that statement.

POSTED BY: Frank Kampas
POSTED BY: Jonathan Kinlay
POSTED BY: Sander Huisman

Can this really be correct, does anyone know? Can it really be true that Mathematica's penetration of the market for physics research is so limited?

David is referring to publishing documents or articles in the CDF format. This is something completely different from using Mathematica as a physicist, and it's different again from publishing Mathematica packages related to physics.

It is very hard to estimate how many physics journal papers may have used Mathematica during research because Mathematica is not typically acknowledged. My impression as a physicist is that should be a significant percentage ...

Regarding packages related to physics, just take a look at hepforge: there are plenty of Mathematica packages there. https://www.hepforge.org/projects

POSTED BY: Szabolcs Horvát
POSTED BY: Jonathan Kinlay

I felt exactly the same regarding point #2...

POSTED BY: Sander Huisman
Posted 10 years ago
POSTED BY: Eric Rimbey

Frank - your application qualifies on every level, I would say. I for one would be interested to learn more (perhaps in another post?) about the distinction you seek to draw between variability and uncertainty.

POSTED BY: Jonathan Kinlay

Jack, ditto:

Are you able to give some specific example of how Wolfram script enables you to deploy stand-alone applications? I'd like to dig into it a little more, as it may be that I (and others) are missing a trick...

POSTED BY: Jonathan Kinlay

Are you able to give some specific example of how Wolfram script enables you to deploy stand-alone applications? I'd like to dig into it a little more, as it may be that I (and others) are missing a trick...

POSTED BY: Jonathan Kinlay
POSTED BY: Jack I Houng
Posted 10 years ago

My co-question in this regard: do someone think that the very concept of 'symbolic manipulation' is friendly for anybody outside WRI (sub)world? I'm not saying about attempts to make "introductory explanations" with the concepts of the same flavour.

POSTED BY: Timur Gareev
Posted 10 years ago
POSTED BY: Timur Gareev

Yes, it was the cells and structures that drove me crazy in the probabilistic graphical models course.

POSTED BY: Frank Kampas

What about the annoyance of having cells, structures, and arrays (matrices?) which are just 'list' in Mathematica.

POSTED BY: Sander Huisman

No idea, sorry. I'm sure it strongly depends on the sub-field (I'm in theoretical solid-state physics) and the university or the "tradition" of the research group. We use a lot of Fortran because there is an existing code base and it makes very little sense to translate it; we also use both commercial and open code from other groups which is all written in Fortran. One of our projects is in C. Any code that has to be fast has to be compiled, so those two would be the natural choices. Smaller pieces of code like scripts for analysis are a mix of different shell flavors, awk, Python, Mathematica... basically depending on who wrote it and whether it's supposed to run on a Linux cluster or on a Windows pc. Gnuplot is also quite popular for quick plots as well as publication figures, and a few people like Origin. As for Matlab: No license -> no usage.

POSTED BY: Bianca Eifert
POSTED BY: Bianca Eifert
POSTED BY: Jonathan Kinlay
POSTED BY: Jonathan Kinlay
POSTED BY: Jonathan Kinlay
POSTED BY: Frank Kampas
POSTED BY: Jonathan Kinlay

I suppose the free cloud plans may be useful for someone who just wants to try out the language...

POSTED BY: Bianca Eifert

I'm a PhD student in physics, and in our group, we use Mathematica to analyse data and prepare figures for publications. We don't publish as CDF, because the relevant journals want PDF. We could certainly go the extra mile and offer a CDF for download as supplementary material, but so far I haven't seen that. (Haven't specifically looked for it either though.)

We also use Mathematica in teaching, mostly because the excellent documentation system makes it so easy to grasp for complete novices, and because it already comes with all the functionality that you might have to install separately in some other languages. (Like graphics capabilities in 2D and 3D, or all sorts of specialized functions.)

POSTED BY: Bianca Eifert
POSTED BY: Bianca Eifert

Szabolcs, yes I caught the distinction and blurred it, deliberately. Because I was trying to frame the question in a broader context - how widely in Mathematica (WL) used in physics research, generally? You said that your

impression as a physicist is that should be a significant percentage

Well, thats the point. My impression as a professional econometrician might be that Mathematica is widely used in econometric research. But that impression would be wrong. How do I know what? Because it is customary for researchers in that field to mention in their research papers the software used in the research (not always, admittedly). And, as I mentioned, I know quite a number of them.

Sander's experience mirrors my own in this regard, it appears.

So the question stands: can anyone (an academic researcher in physics) offer any anecdotal evidence about the usage of Mathematica in that field?

POSTED BY: Jonathan Kinlay

It is quite limited indeed; I, myself, have used it throughout my bachelor, master, PhD and now postdoc. But I was already using before in high school too. But I'm one of the few who uses Mathematica, 'everyone' is obsessed with Matlab! And also books tend towards Matlab... I think it is because a lot of people think Mathematica is only for equation solving, and have no idea it can do (almost) everything Matlab can do.

POSTED BY: Sander Huisman
POSTED BY: Sander Huisman

I find your definition of "real world" kind of weird:

"money changed hands" surely does not equal real-world. Because now you exclude basically all academics! A HUGE number of academics do there analysis using Mathematica/Matlab/...... without getting money for it! It is to publish something. But not directly getting money.

I'm one of the very few in the group that I'm working in that uses Mathematica, but if I compare speed of building software to do analysis, Mathematica trumps any Matlab implementation. Nearly all the code is shorter, more legible, and much faster to implement. I generally have little programs done while the others are still struggling to import some data or so.... Of course that varies a lot on what you do exactly!

POSTED BY: Sander Huisman
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard