21

Quit the kernel before each test. This is on MMA 10.3 on Mac OS X. Simplify the problem We can simplify so that tmp is much much smaller and easier to analyse: rot1 = RotationTransform[{{1, 0, 1}, {0, 0, -1}}, {0, 0, 0}]; tmp = rot1@Tuples[Range[3, 6], 3]; grouptmp1 = GroupBy[tmp, N[Last[#], 8] &]; grouptmp2 = GroupBy[tmp, N[Last[#], 8] &]; ...


19

It looks like a problem of numeric cache: SetSystemOptions["CacheOptions" -> {"Numeric" -> {"Cache" -> False}}]; tmp = {3/Sqrt[2] + 3 Sqrt[2], 3/Sqrt[2] + 3 Sqrt[2]}; grouptmp1 = GroupBy[tmp, N[#, 8] &]; grouptmp2 = GroupBy[tmp, N[#, 8] &]; grouptmp1 === grouptmp2 (* True *) With caching I get False. See also Simon Woods's comment. There ...


17

To get exact output, use exact input (and please input your question using plain text Mathematica code that one can easily copy). Clear[t]; x = Rationalize[3.33333]; eq = x*10^(-15) - x*Exp[-t/5000000]*10^(-15) == 10^(-122); sol = t /. First@Solve[eq, t]; sol = sol /. C[1] -> 0 eq /. t -> sol t should be positive. Since $MaxExtraPrecision = 1000; N[...


16

Here is a analysis of all the problems related to Mathematica in your question. Briefly summarized, These are 3 problems : the lack of build-in tools to visualize the potential and vector field in polar coordinates. boundary problems : Whatever is the real geometry you are interested (not clear in your question, especially you want to optain 1.9 pF/m),...


15

I think it is better to use Cartesian coordinates because one does not have to deal with the periodicity in p. To have control on the meshing of the the region, we tell Mathematica explicitly to discretize it. PrecisionGoal -> 6 controls the meshing at the boundary. But this does not always work. Alternatively, one can use MaxCellMeasure -> 0.001 or a ...


15

There are infinitely many (continuum) solutions and basically one cannot list them all e.g. because of the Cantor theorem. This is the reason why numerical approach is unsatisfactory. However we can make use of FindRoot to find a finite numerical subset of the solution space. Numerical solutions First we set up a net of values of x and starting point of y ...


14

lst = {{2, -2}, {1, 5}, {1, -3}, {-3, 3}}; Pick[lst, Total[lst, {2}], 0] {{2,-2}, {-3,3}} First @ Timing[res0 = Pick[Ta, Total[Ta, {2}], 0];] 0.093750 First @ Timing[res0a = Pick[Ta, Total /@ Ta, 0];] 0.187500 First @ Timing[res0b = Pick[Ta, Plus @@ Transpose[Ta], 0];] (*thanks: 2012rcampion *) 0.062500 First @ Timing[res1 = DeleteCases[Ta,...


13

The problems at hand comes from using inadequate numerical approximation. The equation behind is quite simple and it can be solved exactly, we put 10/3 instead of 3.33333 (if usual mathematical meaning is assumed use 333333/100000 instead of 10/3) : t0 = t /. Solve[10/3 (1 - Exp[-(t/5000000)]) 10^-15 == 10^-122, t, Reals]//First 5000000 (108 Log[2] + 108 ...


12

Yes, by doing this (similar to this): Unprotect[Power]; Power[0|0., 0|0.] = 1; Protect[Power]; If you want to revert to normal: Unprotect[Power]; ClearAll[Power]; Protect[Power]; The downside is that it doesn't make sense mathematically, and from a false premise you could reach a false conclusion. You better constrain your function in some other way. Try ...


11

Your numericRoots are OK. The core of your problem is that you use Expand to put your polynomial into power series form. High order power series are numerically unstable. The form your z function yields by itself is much better: z[8, c] /. numericRoots // Abs // Max (* 9.87841*10^-11 *) Expanding on my answer here: "I can see that what you're saying is ...


11

direct implementation of Chudnovsky formula for reference: a[0] = 1; a[k_] := a[k] = a[k - 1] (-(((-1 + 2 k) (-5 + 6 k) (-1 + 6 k) (13591409 +545140134 k))/ (10939058860032000 k^3 (-531548725 + 545140134 k)))) (pi1 = N[((426880 Sqrt[10005])/(13591409 Sum[ a[k], {k, 0, 500}])),10000]) // AbsoluteTiming // First ...


9

ClearAll[f] eq = 0.003101895368576676` f - 500000/(1057 f \[Pi]) - (0.43169299511061626` Cos[ 0.019329990640367303` f] Sin[ 0.019329990640367303` f])/(1.0609` (1.37`*^-11 + 0.222185005727138`*^-7 Sqrt[f])^2 Cos[ 0.019329990640367303` f]^2 + Sin[0.019329990640367303` f]^2) == 0 sol = NSolve[{eq && 20 < ...


9

The line Table[N[PHI30EQ[u], 30], {u, 0, 0.1, 0.001}] doesn't do what you think it does. You're asking for 30 digits of precision, but you supply u as a machine number. If you mix arbitrary precision and machine precision like that, you'll get machine precision answers. I suspect you instead want is: Table[N[PHI30EQ[u], 30], {u, 0, Rationalize[0.1], ...


8

I think your problems are made by order of appling Re and N. Re@Bloch is not yet a state before the computation. So you have to apply the computation by Re@Norder. Block[{$MaxExtraPrecision = 500, ϵ = 10^-10}, Re@N@BlochΚ[-2 + ϵ, -1, -10]] Block[{$MaxExtraPrecision = 1000, ϵ = 10^-20}, Re@N@BlochΚ[-2 + ϵ, -1, -10]] Block[{$MaxExtraPrecision = 500, ϵ = 10^-...


8

You can use ChartElementFunction: For Version 9: f[{{xmin_, xmax_}, {ymin_, ymax_}}, a_ , b_] := {Rectangle[{xmin, ymin}, {xmax, ymax}, RoundingRadius -> 0.2], Text[Style[Length@a, Large, Bold, Black], Mean /@ {{xmin, xmax}, {ymin, ymax}}]} DensityHistogram[a, {{{.0001, .001, .01, .1, 1, 10, 100}}, {{.01, .1, 1, 10, ...


8

Here is an adaptation of MATLAB code from Trefethen, Ten Digit Algorithms (2005), based on Borwein & Borwein, The Arithmetic-Geometric Mean and Fast Computation of Elementary Functions (1984) that calculates $\pi$ via the AGM method. ClearAll[npi]; npi[digits_] := Block[{two, iter}, iter[{x_, y_, p_}] := With[{s = Sqrt@x}, {(s + 1/s)/2, ...


8

Your problem is similar to a wave spectra problem and a regression problem, and I have both types of problems going on at work right now which is why I've thought about your problem a bit. Here is an approach with bootstrapping. I used FourierDCT because I don't want to figure out the circular statistics of complex numbers... bootStrapUDList[listFuncHead_,...


8

The documentation for N says that N[expr, n] attempts to give a result with n-digit precision. In the Wolfram Language, or any language, precision is not the same as decimal places. While it might seem like N is there to give us results with a certain number of decimal places, it actually has more to do with the amount of precision used in calculations ...


7

Update: I think this is a numeric precision problem rather than a matter of the behavior of Re. I don't know if I should leave my original answer below for reference or remove it. Consider: expr = MathieuC[MathieuCharacteristicA[-(19999999999/10000000000), -2], -2, 5]; N[expr] N[expr, 15] SetPrecision[expr, 15] -9.85323*10^-16 + 3.39211*10^-8 I -0....


7

BarChart[Counts[{"a", "a", "b", "c"}], ChartLabels -> Automatic] By using Counts instead of Tally, we get an Association that BarChart knows how to handle automatically.


7

This is a good candidate for NestList e = 0.05; f = 0; g = 1; n = 100; ListLinePlot[ Transpose@Most@NestList[{First@# + e Last@#, Last@# - e First@#} &, {f, g}, n], DataRange -> {e, e*n}, PlotLegends -> {"f", "g"}]


7

PossibleZeroQ is rather fast and does precisely what you're looking for: RepeatedTiming[PossibleZeroQ[a - b]] {3.2*10^-6, True} @JM's difficult case is handled correctly: PossibleZeroQ[Sin[2017 2^(1/5)] - (-1)] False The limits of PossibleZeroQ can be fine-tuned with $MaxExtraPrecision.


7

NDSolve currently can't handle coupled PDE and ODE, so let's discretize the system all by ourselves, but before that, I'd like to point out the system actually has two solutions. By eliminating $\frac{∂f}{∂r}$ from $(3)$ and $(4)$ we obtain: c = 10; d = 1; e = 1; With[{f = f[r, t], g = g[t]}, bc = {D[f, r] == c D[g, t], f - (d - e D[f, r]) D[f, r] == g} /....


7

You can specify you want real solutions Solve[x*Floor[x] == 10, x, Reals]


7

There's a bisection method right here. Use bisect = ResourceFunction["BisectionMethodFindRoot"] bisect = ResourceFunction["BisectionMethodFindRoot"]; f[x_] := Cosh[2 Sinh[x^3 - 1] Exp[-x^2]] - 3 root = bisect[f[x], {x, 0.25, 1.0}, 9, 10000] Plot[f[x], {x, 0, 2}, PlotRange -> {-2, 3}, Epilog -> {Red, PointSize[Large], Point[{x /. ...


7

a[1] = 2; a[n_] := a[n] = 4 Sum[a[i], {i, n - 1}] Table[a[n], {n, 1, 10}] {2, 8, 40, 200, 1000, 5000, 25000, 125000, 625000, 3125000}


6

As L.S. said, using MMA like C is a path to poor performance. Based on the OP content, I took the liberty of assuming you want the Mean of remaining tuple values appended to the first: d = {{1, 2}, {1, 3}, {3, 4}, {5, 1}, {6, 9}, {6, 8}, {6, 1}}; Map[{#[[1, 1]], Mean[#[[All, 2]]]} &, GatherBy[d, First]] test = RandomInteger[{1, 20}, {100000, 2}]; Map[{...


6

Answering my own question from a while ago. Turns out the easiest method is using MMA’s built-in Computer Arithmetic package << ComputerArithmetic` (*Set Math Parameters*) SetArithmetic[6, 10, ExponentRange -> {-20, 20}]; fpConvert[x_, integerbits_, fractionbits_] := ComputerNumber[IntegerPart[x] + Round[FractionalPart[x], 2^-fractionbits]]; ...


6

Mathematica will perform an exact calculation if possible. "E" means exactly e, rather than a numerical approximation i.e. 2.718 (with a few more decimal places). When you calculate f[1/10] it gives the exact value because all of the inputs are exact. If you want a numerical approximation, you can make any of the inputs approximate, or you can use N to ...


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