Hot answers tagged symbolic
21
Solutions to algebraic or transcendental equations are expressed in terms of Root objects whenever it is impossible to find explicit solutions. In general there is no way express roots of 5-th (or higher) order polynomials in terms of radicals. However even higher order algebraic equations can be solved explicitly if an associated Galois group is solvable. ...
14
What you have is a MultinormalDistribution. The quadratic and linear forms in the exponential can be rewritten in terms of $\frac12(\vec{x}-\vec{\mu})^\top\Sigma^{-1}(\vec{x}-\vec{\mu})$ where $\vec{\mu}$ represents the mean and $\Sigma$ the covariance matrix, see the documentation.
With this, you can do integrals of the type given in the question by ...
13
Use the following representation of the Legendre polynomials:
$$
P_n(x) = 2^n \sum_{k=0}^n x^k \binom{n}{k} \binom{\frac{n+k-1}{n}}{n}
$$
Note that the sum effectively is over $k \equiv n \bmod 2$.
Expand each Legendre polynomial into a sum. Integration with respect to $\theta$ is easy:
$$
\int_0^{\pi} \sin^{k_1+k_2+k_3+1} \theta \mathrm{d}\theta ...
12
Regarding your general question: from my own experience, a large part of my research findings while still at academia would have been much harder or outright impossible to get without Mathematica, and that applies to both numerical and analytical work. I also know this for many other people. There are a number of areas where it allows you to get through some ...
12
Working with RSolve we can find much more than only a few first terms, here is a general term of your function u[n] e.g. :
u[n_] = u[n] /. Flatten[ RSolve[{ u[1] == 1, u[2] == 2, u[3] == 3,
u[n] == -u[n-3] + 3 u[n-2] + 2 u[n-1]}, u[n], n]]
Root[1 - 3 #1 - 2 #1^2 + #1^3 &, 3]^n Root[-45 + 457 #1 - 1028 #1^2 + 257 ...
11
There is nothing wrong with the issue in the question.
Mathematica shouldn't evaluate
Simplify[ Integrate[f[x] + g[x], x] == Integrate[f[x], x] + Integrate[g[x], x]]
to True, because in general such a rule would be mathematically simply wrong.
Consider e.g. $ \forall_{x } f(x) = - g(x)$, while $f$ is not e.g. Lesbegue integrable. Of course ...
11
I've always considered the "suitable for symbolic manipuation" line to be a bit of truth wrapped in marketing speak and not meant to mean anything mathematically precise. The documentation center guides and tutorials are good examples of hyperbole in technical documentation (see for instance, the opening lines in Mathematical Typesetting).
Coming to the ...
11
Firstly convert the equations to matrix/vector form (i.e. $m_1.x=-m_0$).
{m0, m1} = CoefficientArrays[Equations, Unknows]
Then compute the (symbolic) solution.
soln = LinearSolve[m1, -m0] // Chop[#, 10^-6] &
I have chopped parts of the solution that are small, but you don't have to do this.
Verify that the solution is correct.
m1.soln + m0 // ...
11
This is in fact more of a math question than a Mathematica one.
Your equation is one of the many transcendental equations (as opposed to being an algebraic equation that can be solved with methods for solving polynomials) that one cannot solve with the usual ways taught in undergraduate algebra/precalculus courses. In particular, the difficulty in solving ...
10
For example, Reduce:
Reduce[
ForAll[x, α*x^2 + β*x + γ > 0],
{α, β, γ},
Reals
]
which looks like this:
tells us that $\alpha x^2+\beta x+\gamma>0$ for all $x$ if these conditions hold:
Or Resolve:
Resolve[
ForAll[x, α*x^2 + β*x + γ > 0] && x ∈ Reals,
Reals
]
10
An experimental internal function Integrate`InverseIntegrate helps here, although it's intended more for integrands involving logs. This is what it returns in the development version:
Integrate`InverseIntegrate[Exp[-x Cosh[t]], {t, 0, Infinity}, Assumptions -> Re[x] > 0]
(* BesselK[0, x] *)
10
If you use the third argument in Solve, i.e. a list of variables to be eliminated (take a look at the Eliminating Variables tutorial in Mathematica) then you'll get the result immediately :
Solve[{a b c == -1, a^2/c + b/c^2 == 1,
a^2 b + b^2 c + c^2 a == t,
a b^5 + b c^5 + c a^5 == res},
{res}, {a, b, c, t}]
{{res -> 3}}
9
Define
expr[mu_, h_, r_,
a_] := ((mu h a)/(1 + h a))^
a ((mu h (1 - a))/((1 + h a) (1 + h)))^(1 - a) + (
r mu h^2 a (2 + h) (1 - a))/((1 + h (1 - a)) (1 + h) (1 +
h a)) - ((mu h a)/(1 + h))^a ((mu h (1 - a))/(1 + h))^(1 - a);
Then the limits of $\alpha \downarrow 0$ and $\alpha \uparrow 1$ are easy for Mathematica:
In[15]:= ...
9
You can use Select to pull the elements meeting some specified criterion from a list. The selected elements are returned in a list that you can feed to Total to sum them. Total is better than Sum for your problem because you don't have to supply the length of the list and you have no need for indexing.
Clear[u];
u[1] := 1; u[2] := 2;
u[3] := 3;
u[y_] := ...
9
Solution using Block
The easiest option is probably to use Block, and wrap your result in Hold or HoldForm. So,
a = 1; b = 2; c = 3;
result =
Block[{a, b, c},
Hold[Evaluate[Expand[(a + b + c)^3]]]
]
(*
Hold[a^3+3 a^2 b+3 a b^2+b^3+3 a^2 c+6 a b c+3 b^2 c+3 a c^2+3 b c^2+c^3]
*)
The values will be automatically substituted once you call ...
9
You can use Defer to see how to properly enter your "summation" type notation.
Defer[1 + Sum[Sum[1/((k + 2) k!), {k, n, Infinity}], {n, 0, Infinity}]]
You can then enter that output to see that it works. You must've entered something different.
9
You need to specify assumptions:
In[1]:= FunctionExpand[StirlingS2[n, 10], n > 0 && Mod[n, 1] == 0]
Out[1]= -(1/362880) + 2^(-8 + n)/315 + 1/135 2^(-7 + 2 n) +
1/315 2^(-8 + 3 n) - 3^(-3 + n)/1120 +
1/5 2^(-7 + n) 3^(-3 + n) - 5^(-2 + n)/576 +
1/567 2^(-8 + n) 5^(-2 + n) - 7^(-1 + n)/4320 - 9^(-2 + n)/4480
8
This response will keep the basic strategy of the exhibited code, but it will show some useful Mathematica notations that can shorten the code and emphasize its key features.
See the bottom of this response for the code in textual form.
First, we will use ⊕ to represent XOR, just like in the Wikipedia article. This operator has no built-in meaning in ...
8
I can only direct you to Some Notes on Internal Implementation:
Differentiation and Integration
Differentiation uses caching to avoid recomputing partial results.
For indefinite integrals, an extended version of the Risch algorithm
is used whenever both the integrand and integral can be expressed in
terms of elementary functions, ...
8
This is not really ideal, but it gets you most of the way there:
SetAttributes[makeSuperscript, HoldAllComplete];
makeSuperscript[sym_Symbol] := (
sym /: MakeBoxes[sym, form_] = With[{name = SymbolName[sym]},
InterpretationBox[SuperscriptBox[name, "\[Prime]"], sym]
];
sym
);
makeSuperscript[q]
(* -> InterpretationBox[SuperscriptBox["q", ...
8
I think RecurrenceTable deserves justice as a very efficient way to tabulate solutions of the recurrence equations.
Compare procedural approach with no dynamic programming used:
In[214]:= Block[{u, A},
u[1] := 1; u[2] := 2;
u[3] := 3;
u[y_] := -u[y - 3] + 3*u[y - 2] + 2*u[y - 1];
A = Table[u[k], {k, 1, 25}];
Total[Select[A, EvenQ]]] // ...
8
Teach Mathematica the rules. The fundamental one is
$$\frac{d}{dx} \prod_i f_i(x) = \prod_i f_i(x) \sum_i \frac{f_i'(x)}{f_i(x)},$$
at least where none of the $f_i(x)=0$. Iterate this to obtain higher-order derivatives:
Unprotect[D];
D[Product[f_, i___], x_Except[List]] := Product[f, i] Sum[D[f, x]/f, i];
D[Product[f_, i___], {x_, n_Integer}] := ...
8
Assuming you don't have any built-in symbols in that list, you could simply do:
DeleteDuplicates@Cases[Leff, _Symbol, Infinity]
(* {da, ma, dm, mc, La, h, R} *)
If you do have symbols from built-in contexts or packages, you can simply pick out only those that are in the Global` context with:
With[{globalQ = Context@# === "Global`" &},
...
8
FullSimplify[(-1)^n*BesselJ[n, z] - BesselJ[-n, z], n ∈ Integers,
ComplexityFunction -> (StringLength @ ToString @ # &)]
Also:
ComplexityFunction -> (Count[#, _BesselJ | _Power, {-2}] &)
ComplexityFunction -> (Count[#, _?NumberQ, Infinity] &)
7
The absence of a terminal $n$ in the sums suggests you are looking for a combination of symbolic reduction and typography. Let's separate the two, then, by using symbols for the sums, performing the reduction, and then replacing the symbols by whatever we like:
7
I agree with remarks of Leonid and acl - Mathematica is generally much better at performing large computations than are humans. I would add the caveat, though, that Mathematica can certainly miss special simplifications involving symmetry. As a result, there are plenty of situations that can be evaluated by hand but not by Mathematica. One area that is ...
6
To get the behaviour you want, you can tell Simplify to try distributing Integrate over Plus as one of its transformations:
Simplify[Integrate[f[x] + g[x], x] == Integrate[f[x], x] + Integrate[g[x], x],
TransformationFunctions -> {Automatic, # /. i_Integrate :> Distribute[i] &}]
True
6
“I wonder if mathematical software today is so good that it can do better than humans at symbolic manipulation. This would mean that it would be really worthwhile to acquire some background in using such software, especially in those fields of research where one often has to deal with huge formulas.”
I would say faster and more accurate symbolic ...
6
Since we ask if the numbers $\;x_n = \cos(\frac{2n\pi}{11})\;$ are the actual roots of the polynomial :
p[x_] := 64 x^7 - 112 x^5 - 8 x^4 + 56 x^3 + 8 x^2 - 7 x - 1
any numerical approach cannot be sufficient and in order to prove the statement we should proceed with a symbolic approach. Nevertheless NSolve may guarantee that all the roots could be ...
6
Analyze the integrand $f(r)r^2$:
{Expand[Numerator[#]], Denominator[#]} & @ (Apart[f[r]][[#]] r^2 // FullSimplify) & /@ Range[3]
The result exhibits the integrand as a sum of six fractions whose numerators are in the form $\lambda \exp(2 r \alpha / 3) r^k$ for $k=1,2$ and whose common denominator is in the form $(1 + \mu \exp(4 r \alpha / 3))^2$ ...
Only top voted, non community-wiki answers of a minimum length are eligible

