Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now
40

Mathematica wouldn't be much helpful if one applied only formulae calculated by hand. Here we demonstrate how to calculate the desired geometric objects with the system having a definition of the curve r[t] : r[t_] := {t, t^2, t^3} now we call uT the unit tangent vector to r[t]. Since we'd like it only for real parameters we add an assumption to Simplify ...


17

Manipulate[MatrixPlot[Table[Mod[i + j, 2], {i, 1, n}, {j, 1, n}], ColorFunction -> "Monochrome"], {{n, 8}, 1, 20}] Nice and simple. To make it a little more terse we can use Array in place of Table: Manipulate[MatrixPlot[Plus ~Array~ {n, n} ~Mod~ 2, ColorFunction -> "Monochrome"], {{n, 8}, 1, 20}] With correct column numbering, thanks to a ...


17

Okay, let's focus on this snippet: Module[{i, j}, Do[ pe = (volume[[j, i + 1]] pi[[j, i + 1]] + volume[[j, i]] pi[[j, i]])/(volume[[j, i]] + volume[[j, i + 1]]) //. Indeterminate -> "*" // Quiet, {i, 1, 8, 1}, {j, 1, 10, 1}]] Creating some dummy data: volume = RandomReal[{-1, 1}, {10, 9}]; pi = RandomReal[{-1, 1}, {10, 9}]; You use ...


15

In Mathematica: Integrate[Integrate[x^2 + y^2, {x, -Sqrt[1 - y^2], Sqrt[1 - y^2]}], {y, -1, 1}] Or, shorter: Integrate[x^2 + y^2, {y, -1, 1}, {x, -Sqrt[1 - y^2], Sqrt[1 - y^2]}] The main trick is to calculate the bound on $x$ based on the current value of $y$, which is what you need to make the integration bounds explicit. Indeed, $x_{max}=\sqrt{1-y^2}$. ...


15

The dimensional phase-space plot The analysis of the predator-prey model is incomplete without the phase-space plot. So, here it is, a = 2/3; b = 4/3; c = 1; d = 1; sol[x0_?NumericQ] := First@NDSolve[{x'[t] == a*x[t] - b*x[t]*y[t], y'[t] == c*x[t]*y[t] - d*y[t], x[0] == x0, y[0] == x0}, {x, y}, {t, 0, 20}]; ParametricPlot[Evaluate[{x[t], y[t]} /. sol[#] &...


14

From Weierstrass Approximation Theorem we know there is such a polynomial, moreover there are infinitely many polynomials satisfying given criterion. Therefore we would like to find those ones of the minimal order. Since we are supposed to exploit series approximations we define a polynomial of n - th order approximating 6 ArcTan[x] for x such that (-(1/...


13

I assume (sorry if I'm being wrong) that this is some kind of homework. So I've written an answer as guidance. You'll have to work out some details. If your problem is three dimensional, you can write for example: dist[x0_,x1_] := (x0-x1).(x0-x1); power[x0_,x1_]:= c/dist[x0,x1]; findAnt[{{pow1_,pos1_},{pow2_,pos2_},{pow3_,pos3_}}]:= ...


13

You have some errors in your syntax: you name your lists x_sample and y_sample, but in Mathematica, an underscore is not allowed in names (as it is reserved to patterns). your last sum runs from 0, but in Mathematica, the first element in a List has index 1 your last sum should run until the number of data points, not 4 furthermore, I would advise you to ...


12

Observe that even when the tangent vector $r'(t)$ is not normalized, it is still a linear combination of $T(t)$ and $N(t)$. Thus--operating under the usual assumptions that $r'$ and $r''$ exist and are linearly independent--all we have to do is make an orthonormal frame out of $r'(t)$ and $r''(t)$ (which is very much in the spirit of the entire proceeding). ...


11

Mathematica 10 provides new functionality dealing with curves, (see e.g. the Vector Analysis tutorial) like ArcLength, ArcCurvature and especially FrenetSerretSystem: FrenetSerretSystem[{ x1, ..., xn}, t] gives the generalized curvatures and Frenet-Serret basis for the parametric curve x[t] i.e. it returns {{ k1, ..., k(n-1)}, { e1, ..., en}}, where ki ...


11

For even n: MatrixPlot[ ArrayPad[DiagonalMatrix[{1, 1}], 3, "Reflected"], PlotTheme -> "Monochrome"]


11

Taylor polynomials of order n aren't necessarily the nth degree polynomials that optimally approximate a function on a given interval. We can use linear least squares to find the optimal polynomials for a fixed n. inn[f_, g_, x_] := Integrate[f g, {x, -1/Sqrt[3], 1/Sqrt[3]}] LeastSquarePolynomial[f_, x_, n_] := With[{pows = x^Range[0, n]}, pows . ...


10

I'm not too good at graphs, but this seems straightforward. myAdjacencyMatrix = {{0, 3, 1, 3, 3, 8, 0, 0, 3, 4, 2}, {1, 0, 2, 0, 0, 16, 5, 3, 0, 6, 1}, {2, 3, 0, 0, 1, 1, 4, 1, 1, 0, 0}, {5, 3, 3, 0, 5, 0, 2, 2, 2, 2, 1}, {1, 0, 0, 6, 0, 1, 2, 6, 10, 2, 4}, {0, 11, 3, 0, 1, 0, 8, 3, 1, 3, 3}, {2, 4, 1, 7, 6, 7, 0, 6, 0, 8, 2}, {1, 2, 1, 3, 8, 4, 4, 0,...


10

r = ParametricRegion[{r Cos[ϕ], Sin[ϕ] r, Sqrt[28 r]}, {{r, 0, 21}, {ϕ, 0, 2 π}}] Area[r] 49/2 π (14 Sqrt[3] - ArcSinh[Sqrt[3]])


10

Anyone asking you to write For loops in Mathematica for such a problem is a dolt. Nevertheless, here's how you might do that: rslt = 0; For[i = 0, i <= 50, i += 2, rslt += i]; rslt And here's how someone with some familiarity with Mathematica might write it Plus @@ Range[25]*2 Now, spend the time you were going to waste writing a For loop by reading ...


9

The symbol $\epsilon$ is called the Levi-Civita tensor, it is usually written in terms of its components $\epsilon_{i j k}$. Having defined two vectors (i.e. first order contravariant tensors): a = { a1, a2, a3}; b = { b1, b2, b3}; we have to build up a tensor product of two vectors and Levi-Civita tensor, i.e. we get a new tensor of valence $(3,2)$ (i.e....


9

We can find a 7th order polynomial that meets the requirement if we minimise the $\infty$-norm. For simplicity I construct an array of {x, 6 ArcTan[x]} over the required range and plug it into FindFit, no doubt there are better ways. {a, b} = {-1, 1}/Sqrt[3]; data = Table[{x, 6 ArcTan[x]}, {x, a, b, (b - a)/1000.}]; n = 7; expr = Sum[c[i] x^i, {i, 1, n, 2}];...


9

This code presented in this answer is essentially the same as the code given by DumpsterDoofus. I just want to point out the importance of having meaningful values for the parameters and initial conditions. I also want to show one might explore the parameter space with a Manipulate expression. One of the phenomena demonstrated by the Lotka-Volterra model is ...


9

This is just a suggested amendment to JasonB's answer. It wasn't clear to me that it deserves a separate answer, since it deals with side issues tangentially related to the OP's question. It's easier to deal with the singularities if we scale the direction field by Sin[x]. Since only one streamline needs updating when the initial condition is changed, we ...


9

You can use MeshFunctions to visualize the intersection. The following is one way to parametrize curve. f[x_, y_] := 2 x^3 - 5 y^4; p[x_, y_] := x + y + 5; expr = x /. Quiet[First@Solve[f[x, y] == p[x, y], {x, y}, Reals]]; t[u_] := expr /. y -> u; par[w_] := {t[w], w, p[t[w], w]}; p3D = Plot3D[{f[x, y], p[x, y]}, {x, -20, 20}, {y, -10, 10}, ...


8

My answer: cb[n_Integer /; n > 0] := MatrixPlot@SparseArray[{i_, j_} :> Mod[i + j, 2], {n, n}] cb[8] For those who desire a more traditional board: Block[{n = 8}, MatrixPlot[ SparseArray[{i_, j_} :> Mod[1 + i + j, 2], {n, n}], ColorFunction -> GrayLevel, FrameTicks -> { {#, #} &@ Table[{i, n - i + 1}, {i, n}], {#, #} &...


8

Your formula should be either 4 + Sum[(-1)^x*4/(2*x + 1), {x, 1, Infinity}] Pi or Sum[(-1)^x*4/(2*x + 1), {x, 0, Infinity}] Pi The finite series approximation is then Clear[f] f[n_] := Sum[(-1)^x*4/(2*x + 1), {x, 0, n}] As n increases, f[n] converges slowly to Pi. With[{nmax = 150}, DiscretePlot[f[n], {n, 1, nmax}, Epilog -> {Red, Line[{{...


8

You'll learn more trying to understand the following code than by programming silly Do[ ]s startA = 0; startT = 1000; velA = 10; velT = 9; pos[start_, vel_, time_] := start + vel time tf = t /. First@Solve[pos[startA, velA, t] == pos[startT, velT, t]]; Plot[{pos[startA, velA, t], pos[startT, velT, t]}, {t, 0, tf}, AxesLabel -> {Time, Position}, ...


8

Copying your exact code de1 = 25*Derivative[2][x][t] + 10*Derivative[1][x][t] + 226*x[t] == 901*Cos[3*t]; inits = {x[0] -> 0, Derivative[1][x][0] -> 0}; DE = LaplaceTransform[de1, t, s] X = Solve[DE, LaplaceTransform[x[t], t, s]] X = Last[Last[Last[X]]] X = X /. inits f1 = Simplify[Expand[InverseLaplaceTransform[X, s, t]]] Now it's easy to ...


7

This is mainly an answer to your last question, but I think it will help with your other ones. I assume you know that the $T$ function is vector valued, and that is what you want. To substitute in a specific value of $t$, you probably want replacement rules, specifically the ReplaceAll (/.) construct. For example, if you had defined your expression $T(t)$ ...


7

If you want to translate Matlab code into Mathematica, my advice is - don't! As programming languages, the two are very different and an idiom that works well in one is unlikely to work well in the other. A fundamental theorem theorem in discrete dynamics states that if there's an attractive orbit, then it must attract at least one critical point. Thus, ...


7

Graphics[{{Green, Line[{{0, 0}, {1/Sqrt[2], 1/Sqrt[2]}}]}, {Red, Line[{{1/Sqrt[2], 0}, {1/Sqrt[2], 1/Sqrt[2]}}]}, {Line[{{0, 1/Sqrt[2]}, {1/Sqrt[2], 1/Sqrt[2]}}]}, {Green, PointSize[.03], Point[{1/Sqrt[2], 1/Sqrt[2]}]}, {Circle[{0, 0}, 1, {-2 Pi, 2 Pi}]}}, Axes -> True, Ticks -> {{0, 1/Sqrt[2]}, {0, 1/Sqrt[2]}}]


7

If you really want a parabola primitive from 3 points, you can use Fit to fit a parabola to the three points, Plot to plot it, and Cases to extract the Line primitive from the plot. For example parabola[pts_] := Module[{x, func, xmin, xmax}, func = Fit[pts, {1, x, x^2}, x]; xmin = Min[pts[[All, 1]]]; xmax = Max[pts[[All, 1]]]; Cases[Plot[func, {x, ...


7

You forgot to specify initial conditions on $x$ and $y$, which makes plotting impossible. However, even when initial conditions are specified, DSolve seems to choke on some sort of inverse-function garbage, so I'll sidestep it by using NDSolve instead (I'll let others determine why the analytic solution doesn't work): {a, b, c, d} = {1, 2, 3, 4}; {X, Y} = ...


Only top voted, non community-wiki answers of a minimum length are eligible