# Tag Info

6

Eliminate the unnecessary force* variables, which forces NDSolve to use the DAE solver, and just solve it as an ODE. Then you can use higher precision etc., if desired, but in this case you get the same solution using machine precision as higher precision. newsys = ComplexExpand@Eliminate[Rationalize[#, 0] &@{ ...

5

A typical way to test the result of a function is to set res = DSolve[...] and then test FreeQ[res, DSolve] to see if the result is free of any DSolve command. Now, DSolve might solve a differential equation in terms of Solve: DSolve[D[ ExpIntegralEi[x + y[x]] == x, x], y, x] (* Solve[-x + ExpIntegralEi[x + y[x]] == C[1], y[x]] *) This might not ...

5

There is some issue with internal numerics. As the argument gets smaller, the more precision is needed. For t == 0.01, three times $MachinePrecision is sufficient. Table[ N@N[ Derivative[1][DedekindEta][I Round[t, 1/100]], 3$MachinePrecision], {t, .01, .2, .01}] (* {0. - 1.09595*10^-7 I, 0. - 0.00919556 I, 0. - 0.256807 I, 0. - 1.08606 I, 0. - ...

4

A somewhat redundant answer to Michael E2's, but providing the simplification. The problem is not that the numbers are not scaled. (Though it is nice to scale your problems when possible.) The problem is the intermediate forces. You should eliminate them, as well as simplifying the initial conditions. I named your constants for clarity: NDSolve[{ ...

4

Here is the merit function: Both step control methods [line search and trust region] were developed originally with minimization in mind. However, they apply well to finding roots for nonlinear equations when used with a merit function. In the Wolfram Language, the 2-norm merit function r(x).r(x) is used. -- Introduction to Step Control The "sufficient ...

2

I'm not sure, what exactly goes wrong on your machine, but here it works. Maybe one note, if your integral behaves well, then you could calculate the indefinite integral, which is faster by ages because Mathematica does not check conditions etc. expr = dy ((b x y + c x)/(e y + f) + g x) - dx (a/e x Log[e y + f]) /. {x -> px + t dx, y -> py + t ...

2

One can get the current value of a dynamic object using Setting: Slider[Dynamic@n, {1, 100, 1}, Appearance -> "Labeled"] fib = Dynamic@Table[Fibonacci[i], {i, n}]; indices = Dynamic@Flatten@Position[Setting@fib, _?(# > 99 &)]

2

(This is more of a long comment than an answer.) I distinctly recall having the feeling of disappointment in trying to use the derivative of $\eta(\tau)$ as an intermediate in computing $E_2(\tau)$. Among other things, I tried this alternative formula: $$\frac1{\eta(\tau)}\frac{\mathrm d}{\mathrm d\tau}\eta(\tau)=-\zeta(\pi i\mid-\pi i,-\pi i \tau)$$ ...

2

Modifying the code to include the missing boundary conditions (chosen somewhat arbitrarily in the absence of additional information) that I mentioned in my comment above, tmax = 10; solution = NDSolveValue[{pdeF, pdeM, v1[x, tmax] == 0, v2[x, tmax] == 0, v1[0, t] == 0, v2[0, t] == 0}, {v1, v2}, {x, 0, 1.2}, {t, 0, tmax}, Method -> ...

1

Firstly, your f function is undefined at the boundaries between regions, so use <= to make sure the whole range is covered f[x_] := \[Piecewise]{{Tanh[2 x], 0 <= x < 2}, {Tanh[-2 (x - 4)], 2 <= x < 6}, {Tanh[2 (x - 8)], 6 <= x < 10}, {Tanh[-2 (x - 12)], 10 <= x <= 14}}; d = f'; Second, when you try to take the ...

1

OK, look at the following: showStatus[status_] := LinkWrite[\$ParentLink, SetNotebookStatusLine[FrontEnd`EvaluationNotebook[], ToString[status]]]; clearStatus[] := showStatus[""]; clearStatus[] rs = NDSolveValue[{IdentityMatrix[Length[a]].p'[t] + p[t].a + Transpose[a].p[t] - p[t].b.Inverse[r].Transpose[b].p[t] == {0, 0, 0, 0, 0, 0, ...

1

After asking Wolfram Support, they tell me this is a bug that has been fixed in version 10.1.

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