Frequent Questions
19,383 questions
559
votes
37
answers
139k
views
What are the most common pitfalls awaiting new users?
As you may already know, Mathematica is a wonderful piece of software.
However, it has a few characteristics that tend to confuse new (and sometimes not-so-new) users. That can be clearly seen from ...
54
votes
4
answers
24k
views
How do I work with Root objects?
I want to solve the trigonometric equation :
$$(3-\cos 4x )\cdot (\sin x - \cos x ) = 2.$$
I tried
Solve[(3 - Cos[4*x])*(Sin[x] - Cos[x]) == 2, x]
It returns the ...
608
votes
19
answers
161k
views
Where can I find examples of good Mathematica programming practice?
I consider myself a pretty good Mathematica programmer, but I'm always looking out for ways to either improve my way of doing things in Mathematica, or to see if there's something nifty that I haven't ...
112
votes
4
answers
18k
views
Plot draws list of curves in same color when not using Evaluate
This example comes from
the Mathematica documentation for Plot
under Basic Examples.
Can someone please explain why these are each plotted as a different color in ...
185
votes
8
answers
23k
views
List of compilable functions
Is there somewhere a list on the functions that Compile can compile, or the cases in which a particular function can be compiled that I haven't found?
I'd be glad ...
262
votes
9
answers
21k
views
What are the use cases for different scoping constructs?
Mathematica includes three functions that I know of which can be used to effectively (if not actually) define a variable and give it a value within a local scope: ...
207
votes
3
answers
57k
views
Alternatives to procedural loops and iterating over lists in Mathematica
While there are some cases where a For loop might be reasonable, it's a general mantra – one I subscribe to myself – that "if you are using a ...
125
votes
3
answers
10k
views
What is a Mathematica packed array?
A simple sounding question with a few sub questions:
What is the difference between unpacked vs packed array?
Are packed arrays more space efficent, how much so?
Are packed arrays more time efficient ...
120
votes
4
answers
31k
views
Why should I avoid the For loop in Mathematica?
Some people advise against the use of For loops in Mathematica. Why? Should I heed this advice? What is wrong with For? What ...
56
votes
4
answers
13k
views
Why does MatrixForm affect calculations?
This is a really newbie question, but it has me confused. Why does this code work without // MatrixForm and doesn't work with ...
208
votes
15
answers
77k
views
Elegant operations on matrix rows and columns
Question
The Mathematica tutorial has a section 'Basic Matrix Operations', describing operations like transpose, inverse and determinant. These operations all work on entire matrices. I am missing a ...
216
votes
26
answers
19k
views
What are some useful, undocumented Mathematica functions?
There have already been some questions about some undocumented functionality in Mathematica. Such as (please add to these lists!)
How can one find undocumented options or option values in Mathematica?...
93
votes
5
answers
15k
views
What does the construct f[x_] := f[x] = ... mean?
This question mentions "x := x = trickery".
What does defining a function as f[x_] := f[x] = ... do and what is it good for?
54
votes
4
answers
9k
views
Dynamic Euler–Bernoulli beam equation
I am trying to solve for the vibration of a Euler–Bernoulli beam. The equation is
$\frac{\partial ^2u(t,x)}{\partial t^2}+\frac{\partial ^4u(t,x)}{\partial x^4}=0$
For the boundary conditions I ...
52
votes
5
answers
3k
views
Enforcing correct variable bindings and avoiding renamings for conflicting variables in nested scoping constructs
Using global variables the following turns an "expression" into a Function:
expr = 2 x;
Function[x, Evaluate[expr]]
Of course ...
125
votes
7
answers
8k
views
What is the most convenient way to read definitions of in-memory symbols when we don't have the source files? (Spelunking tools)
Note: I put Simon's implementation on GitHub. Contributions welcome!
When trying to read the definition of already defined (package or built-in) symbols using ...
52
votes
9
answers
14k
views
About multi-root search in Mathematica for transcendental equations
I have some questions for multiroot search for transcendental equations. Is there any clever solution to find all the roots for a transcendental equation in a specific range?
Perhaps ...
32
votes
6
answers
5k
views
How are parameters evaluated for a Plot in Manipulate
I am trying to get my head around how Manipulate evaluates functions in a Plot. I have read the introduction to Manipulate, and introduction to Dynamic, but I still ...
224
votes
2
answers
15k
views
What is the distinction between DownValues, UpValues, SubValues, and OwnValues?
When reading through the documentation, you often encounter the phrases DownValues, UpValues, ...
65
votes
12
answers
112k
views
Assign the results from a Solve to variable(s)
I understand Mathematica can't assign the results of a Solve to the unknowns because there may be more than 1 solution. How can I assign the 4 values of following result to variables?
...
107
votes
5
answers
7k
views
Replacement inside held expression
I wish to make a replacement inside a held expression:
f[x_Real] := x^2;
Hold[{2., 3.}] /. n_Real :> f[n]
The desired output is ...
61
votes
1
answer
4k
views
What's inside InterpolatingFunction[{{1., 4.}}, <>]?
I'm curious what's inside the InterpolationFunction object?
For example:
...
164
votes
12
answers
58k
views
1 Plot, 2 Scale/Axis
I would like to plot those two datasets on top of each other. But they have very different range on the $y$ axis. How can I have two different axis?
I found the following on the help menu but quite ...
33
votes
1
answer
40k
views
What do the X and Y axis stand for in the Fourier transform domain?
In Wolfram Mathematica the function Fourier has the following declaration
Fourier[list]
And after a list is given to the ...
86
votes
9
answers
7k
views
Updating Wagon's FindAllCrossings2D[] function
Stan Wagon's Mathematica in Action (second edition; I haven't read the third edition and I'm hoping to eventually see it), demonstrates a nifty function called ...
68
votes
4
answers
6k
views
How do I evaluate only one step of an expression?
I am looking for a simple, robust way to evaluate an expression only one step, and return the result in a held form.
The definition of a single step is ambiguous, and this itself is probably worthy ...
78
votes
4
answers
16k
views
Plotting implicitly-defined space curves
It is known that space curves can either be defined parametrically,
$$\begin{align*}x&=f(t)\\y&=g(t)\\z&=h(t)\end{align*}$$
or as the intersection of two surfaces,
$$\begin{align*}F(x,y,...
78
votes
4
answers
23k
views
How do I save a variable or function definition to a file?
Is it possible to save a function which was created via Interpolation of some data in such a way that I can use this function in a new Mathematica session without ...
47
votes
4
answers
5k
views
Function in Table
I need a table with the elements made of pure functions and list elements. This is a simplified example:
I need a list as:
...
187
votes
6
answers
25k
views
How to compile effectively?
What are the best practices of compiling functions? I understand that this is a vague question, but let me list some aspects that might trigger useful answers. Some of these have already been answered ...
70
votes
10
answers
4k
views
Injecting a sequence of expressions into a held expression
Consider the following toy example:
Hold[{1, 2, x}] /. x -> Sequence[3, 4]
It will give
Hold[{1, 2, Sequence[3, 4]}]
...
140
votes
8
answers
9k
views
Can one identify the design patterns of Mathematica?
... or are they unnecessary in such a high-level language?
I've been thinking about programming style, coding standards and the like quite a bit lately, the result of my current work on a mixed .Net/...
116
votes
2
answers
33k
views
What is the difference between Reduce and Solve?
Solve and Reduce both can be used for solving equations.
Just by working with them, I know there are some differences between ...
165
votes
5
answers
17k
views
Are you interested in purchasing David Wagner's "Power programming with Mathematica"?
I recently contacted McGraw-Hill to see if they have a mechanism in place for printing out-of-print books that are still of interest. Specifically, I asked about "Power programming with Mathematica" ...
140
votes
9
answers
32k
views
Creating Mathematica packages
I'm building a package to help me write packages and their documentation. In this post I explained how to make a package and its documentation. In the answer I provided I describe how to build a very ...
113
votes
4
answers
7k
views
Flatten command: matrix as second argument
One thing I could never wrap my head around is how Flatten works when provided with a matrix as the second argument, and the Mathematica help isn't particularly ...
149
votes
7
answers
191k
views
Get a "step-by-step" evaluation in Mathematica
Is it possible in Mathematica to get a step-by-step evaluation of some functions; that's to say, outputting not only the result but all the stages that have led to it? If so, how does one do it?
...
32
votes
3
answers
32k
views
General::ivar is not a valid variable when plotting - what actually causes this and how to avoid it?
I was just evaluating a couple of expressions and started to get errors like this:
...
16
votes
2
answers
4k
views
Boundary condition with spatial derivative is ignored by NDSolve
Consider the following differential equation:
$$\begin{align*}&\rho C_p\left(\frac{\partial T}{\partial t}\right)=k\left[\frac{\partial^2 T}{\partial x^2}\right]+\dot{q}\\
&\text{at }x=0,\;\...
60
votes
4
answers
12k
views
Can I simplify an expression into form which uses my own definitions?
This seems like a simple thing to do, but I couldn't find anything relevant from Mathematica documentation.
So suppose I have an expression:
a*b/(a + a*Cos[a/b])
...
66
votes
2
answers
8k
views
Analogue for Maple's dchange - change of variables in differential expressions
Update
Finally in v13.1 the function DSolveChangeVariables is introduced, try it out! DChange in the answer below is still a ...
53
votes
6
answers
12k
views
Finding real roots of negative numbers (for example, $\sqrt[3]{-8}$)
Say I want to quickly calculate $\sqrt[3]{-8}$, to which the most obvious solution is $-2$.
When I input $\sqrt[3]{-8}$ or Power[-8, 3^-1], Mathematica gives the ...
32
votes
2
answers
4k
views
Plot Option Precedence while combining Plots with Show[]
I like to build sophisticated plots by combining simpler ones with Show[]. Typically this involves setting non-default Plot-Options with the different Plot-Commands,...
58
votes
2
answers
9k
views
Do I have to code each case of this Grid full of plots separately?
I have written some custom functions to draw multi-panel graphs like this one:
It's done by passing a matrix of (custom) plotting functions to a MultiPanelGraph ...
186
votes
5
answers
20k
views
Performance tuning in Mathematica?
What performance tuning tricks do you use to make a Mathematica application faster? MATLAB has an amazing profiler, but from what I can tell, Mathematica has no similar functionality.
91
votes
3
answers
6k
views
Extract values for ViewMatrix from a Graphics3D
Under More Information in the help page of ViewMatrix the following entry can be found
With the setting ViewMatrix->Automatic...
70
votes
5
answers
32k
views
Creating legends for plots with multiple lines?
So I have a graph with multiple lists, for e.g.
data = {{1,2}, {3,4}, {3,5}, {2,3} . . .}
If I then do ...
48
votes
2
answers
11k
views
What is the difference between Set and SetDelayed?
I have a problem with defining a function and most of time I get confused by Set or = and ...
124
votes
7
answers
19k
views
Struct equivalent in Mathematica?
I really miss having something like a struct in Mathematica. I know of (and regularly use) a couple of programming techniques which feel like a ...
90
votes
11
answers
21k
views
How to check if a 2D point is in a polygon?
Background: I use code from An Efficient Test For A Point To Be In A Convex Polygon Wolfram Demonstration to check if a point ( mouse pointer ) is in a ( convex ) polygon. Clearly this code fails for ...