@danielsimonjr/mathts-functions 0.50.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -12199,6 +12199,446 @@ function rodasSolve(f, tspan, y0raw, options = {}) {
12199
12199
  }
12200
12200
  return { t: tOut, y: yOut };
12201
12201
  }
12202
+ var _EPS = Number.EPSILON;
12203
+ function _rms(v) {
12204
+ let s = 0;
12205
+ for (let i = 0; i < v.length; i++) s += v[i] * v[i];
12206
+ return Math.sqrt(s / v.length);
12207
+ }
12208
+ function _selectInitialStep(f, t0, y0, tf, maxStep, f0, dir, order, rtol, atol) {
12209
+ const interval2 = Math.abs(tf - t0);
12210
+ if (interval2 === 0) return 0;
12211
+ const scale4 = y0.map((yi) => atol + Math.abs(yi) * rtol);
12212
+ const d0 = _rms(y0.map((yi, i) => yi / scale4[i]));
12213
+ const d1 = _rms(f0.map((fi, i) => fi / scale4[i]));
12214
+ let h0 = d0 < 1e-5 || d1 < 1e-5 ? 1e-6 : 0.01 * (d0 / d1);
12215
+ h0 = Math.min(h0, interval2);
12216
+ const y1 = y0.map((yi, i) => yi + h0 * dir * f0[i]);
12217
+ const f1 = _fArr(f, t0 + h0 * dir, y1);
12218
+ const d2 = _rms(f1.map((v, i) => (v - f0[i]) / scale4[i])) / h0;
12219
+ const h1 = d1 <= 1e-15 && d2 <= 1e-15 ? Math.max(1e-6, h0 * 1e-3) : Math.pow(0.01 / Math.max(d1, d2), 1 / (order + 1));
12220
+ return Math.min(100 * h0, h1, interval2, maxStep);
12221
+ }
12222
+ function _newtonTol(rtol) {
12223
+ return Math.max(10 * _EPS / rtol, Math.min(0.03, Math.sqrt(rtol)));
12224
+ }
12225
+ function _minStep(t) {
12226
+ return 10 * _EPS * Math.max(1, Math.abs(t));
12227
+ }
12228
+ function _matMul(A, B) {
12229
+ const m = A.length;
12230
+ const p = B[0].length;
12231
+ const q = B.length;
12232
+ const out = Array.from({ length: m }, () => new Array(p).fill(0));
12233
+ for (let i = 0; i < m; i++) {
12234
+ for (let k = 0; k < q; k++) {
12235
+ const aik = A[i][k];
12236
+ if (aik === 0) continue;
12237
+ for (let j = 0; j < p; j++) out[i][j] += aik * B[k][j];
12238
+ }
12239
+ }
12240
+ return out;
12241
+ }
12242
+ var BDF_MAX_ORDER = 5;
12243
+ var BDF_NEWTON_MAXITER = 4;
12244
+ var BDF_MIN_FACTOR = 0.2;
12245
+ var BDF_MAX_FACTOR = 10;
12246
+ var BDF_KAPPA = [0, -0.185, -1 / 9, -0.0823, -0.0415, 0];
12247
+ var BDF_GAMMA = (() => {
12248
+ const g = [0];
12249
+ let acc = 0;
12250
+ for (let i = 1; i <= BDF_MAX_ORDER; i++) {
12251
+ acc += 1 / i;
12252
+ g.push(acc);
12253
+ }
12254
+ return g;
12255
+ })();
12256
+ var BDF_ALPHA = BDF_KAPPA.map((k, i) => (1 - k) * BDF_GAMMA[i]);
12257
+ var BDF_ERROR_CONST = BDF_KAPPA.map((k, i) => k * BDF_GAMMA[i] + 1 / (i + 1));
12258
+ function _bdfComputeR(order, factor2) {
12259
+ const M = Array.from(
12260
+ { length: order + 1 },
12261
+ () => new Array(order + 1).fill(0)
12262
+ );
12263
+ for (let j = 0; j <= order; j++) M[0][j] = 1;
12264
+ for (let i = 1; i <= order; i++) {
12265
+ for (let j = 1; j <= order; j++) M[i][j] = (i - 1 - factor2 * j) / i;
12266
+ }
12267
+ for (let j = 0; j <= order; j++) {
12268
+ for (let i = 1; i <= order; i++) M[i][j] *= M[i - 1][j];
12269
+ }
12270
+ return M;
12271
+ }
12272
+ function _bdfChangeD(D, order, factor2) {
12273
+ const R = _bdfComputeR(order, factor2);
12274
+ const U = _bdfComputeR(order, 1);
12275
+ const RU = _matMul(R, U);
12276
+ const n = D[0].length;
12277
+ const newTop = Array.from({ length: order + 1 }, () => new Array(n).fill(0));
12278
+ for (let i = 0; i <= order; i++) {
12279
+ for (let j = 0; j <= order; j++) {
12280
+ const c = RU[j][i];
12281
+ if (c === 0) continue;
12282
+ const Dj = D[j];
12283
+ const row2 = newTop[i];
12284
+ for (let k = 0; k < n; k++) row2[k] += c * Dj[k];
12285
+ }
12286
+ }
12287
+ for (let i = 0; i <= order; i++) D[i] = newTop[i];
12288
+ }
12289
+ function _bdfNewton(f, tNew, yPredict, c, psi, solveW, scale4, tol) {
12290
+ const n = yPredict.length;
12291
+ const d = new Array(n).fill(0);
12292
+ const y = yPredict.slice();
12293
+ let dyNormOld = null;
12294
+ let converged = false;
12295
+ let k = 0;
12296
+ for (; k < BDF_NEWTON_MAXITER; k++) {
12297
+ const fv = _fArr(f, tNew, y);
12298
+ if (!fv.every((v) => Number.isFinite(v))) break;
12299
+ const rhs = fv.map((v, i) => c * v - psi[i] - d[i]);
12300
+ const dy = solveW(rhs);
12301
+ const dyNorm = _rms(dy.map((v, i) => v / scale4[i]));
12302
+ const rate = dyNormOld === null ? null : dyNorm / dyNormOld;
12303
+ if (rate !== null && (rate >= 1 || Math.pow(rate, BDF_NEWTON_MAXITER - k) / (1 - rate) * dyNorm > tol)) {
12304
+ break;
12305
+ }
12306
+ for (let i = 0; i < n; i++) {
12307
+ y[i] += dy[i];
12308
+ d[i] += dy[i];
12309
+ }
12310
+ if (dyNorm === 0 || rate !== null && rate / (1 - rate) * dyNorm < tol) {
12311
+ converged = true;
12312
+ k++;
12313
+ break;
12314
+ }
12315
+ dyNormOld = dyNorm;
12316
+ }
12317
+ return { converged, nIter: k, y, d };
12318
+ }
12319
+ function bdfSolve(f, tspan, y0raw, options = {}) {
12320
+ const t0 = tspan[0];
12321
+ const tf = tspan[1];
12322
+ if (!(typeof t0 === "number" && typeof tf === "number")) {
12323
+ throw new Error('The "BDF" stiff method requires numeric tspan');
12324
+ }
12325
+ if (!y0raw.every((v) => typeof v === "number")) {
12326
+ throw new Error('The "BDF" stiff method requires plain-number state (y0)');
12327
+ }
12328
+ const y0 = y0raw;
12329
+ const n = y0.length;
12330
+ const dir = tf >= t0 ? 1 : -1;
12331
+ const rtol = options.tol ? options.tol : 1e-4;
12332
+ const atol = rtol * 1e-3;
12333
+ const maxIter = options.maxIter ? options.maxIter : 1e5;
12334
+ const maxStep = options.maxStep ?? Infinity;
12335
+ const newtonTol = _newtonTol(rtol);
12336
+ let t = t0;
12337
+ let y = y0.slice();
12338
+ const f0 = _fArr(f, t, y);
12339
+ let hAbs = options.firstStep ? Math.abs(options.firstStep) : _selectInitialStep(f, t0, y0, tf, maxStep, f0, dir, 1, rtol, atol);
12340
+ const D = Array.from(
12341
+ { length: BDF_MAX_ORDER + 3 },
12342
+ () => new Array(n).fill(0)
12343
+ );
12344
+ D[0] = y.slice();
12345
+ D[1] = f0.map((v) => v * hAbs * dir);
12346
+ let order = 1;
12347
+ let nEqualSteps = 0;
12348
+ const tOut = [t];
12349
+ const yOut = [y.slice()];
12350
+ let iter = 0;
12351
+ while ((dir > 0 ? t < tf : t > tf) && iter < maxIter) {
12352
+ iter++;
12353
+ const minStep = _minStep(t);
12354
+ if (hAbs > maxStep) {
12355
+ _bdfChangeD(D, order, maxStep / hAbs);
12356
+ hAbs = maxStep;
12357
+ nEqualSteps = 0;
12358
+ } else if (hAbs < minStep) {
12359
+ _bdfChangeD(D, order, minStep / hAbs);
12360
+ hAbs = minStep;
12361
+ nEqualSteps = 0;
12362
+ }
12363
+ const F0 = _fArr(f, t, y);
12364
+ const J = _jacobianAt(f, t, y, F0, options);
12365
+ let stepAccepted = false;
12366
+ let yNew = y;
12367
+ let dVec = new Array(n).fill(0);
12368
+ let errorNorm = 0;
12369
+ let nIter = 1;
12370
+ let scale4 = new Array(n).fill(1);
12371
+ while (!stepAccepted) {
12372
+ if (hAbs < minStep) {
12373
+ throw new Error("Required step size is less than spacing between numbers (BDF)");
12374
+ }
12375
+ let h = hAbs * dir;
12376
+ let tNew = t + h;
12377
+ if (dir * (tNew - tf) > 0) {
12378
+ tNew = tf;
12379
+ _bdfChangeD(D, order, Math.abs(tNew - t) / hAbs);
12380
+ nEqualSteps = 0;
12381
+ }
12382
+ h = tNew - t;
12383
+ hAbs = Math.abs(h);
12384
+ const yPredict = new Array(n).fill(0);
12385
+ for (let j = 0; j <= order; j++) for (let k = 0; k < n; k++) yPredict[k] += D[j][k];
12386
+ scale4 = yPredict.map((v) => atol + rtol * Math.abs(v));
12387
+ const psi = new Array(n).fill(0);
12388
+ for (let k = 0; k < n; k++) {
12389
+ let s = 0;
12390
+ for (let j = 1; j <= order; j++) s += D[j][k] * BDF_GAMMA[j];
12391
+ psi[k] = s / BDF_ALPHA[order];
12392
+ }
12393
+ const c = h / BDF_ALPHA[order];
12394
+ const W = J.map((rowv, i) => rowv.map((v, j) => (i === j ? 1 : 0) - c * v));
12395
+ const solveW = _factorSolver(W, n);
12396
+ const res = _bdfNewton(f, tNew, yPredict, c, psi, solveW, scale4, newtonTol);
12397
+ if (!res.converged) {
12398
+ hAbs *= 0.5;
12399
+ _bdfChangeD(D, order, 0.5);
12400
+ nEqualSteps = 0;
12401
+ continue;
12402
+ }
12403
+ nIter = res.nIter;
12404
+ yNew = res.y;
12405
+ dVec = res.d;
12406
+ const safety2 = 0.9 * (2 * BDF_NEWTON_MAXITER + 1) / (2 * BDF_NEWTON_MAXITER + nIter);
12407
+ scale4 = yNew.map((v) => atol + rtol * Math.abs(v));
12408
+ errorNorm = _rms(dVec.map((v, i) => BDF_ERROR_CONST[order] * v / scale4[i]));
12409
+ if (errorNorm > 1) {
12410
+ const factor3 = Math.max(BDF_MIN_FACTOR, safety2 * Math.pow(errorNorm, -1 / (order + 1)));
12411
+ hAbs *= factor3;
12412
+ _bdfChangeD(D, order, factor3);
12413
+ nEqualSteps = 0;
12414
+ } else {
12415
+ stepAccepted = true;
12416
+ }
12417
+ if (stepAccepted) {
12418
+ t = tNew;
12419
+ y = yNew;
12420
+ tOut.push(t);
12421
+ yOut.push(y.slice());
12422
+ }
12423
+ }
12424
+ nEqualSteps++;
12425
+ const safety = 0.9 * (2 * BDF_NEWTON_MAXITER + 1) / (2 * BDF_NEWTON_MAXITER + nIter);
12426
+ for (let k = 0; k < n; k++) {
12427
+ D[order + 2][k] = dVec[k] - D[order + 1][k];
12428
+ D[order + 1][k] = dVec[k];
12429
+ }
12430
+ for (let i = order; i >= 0; i--) for (let k = 0; k < n; k++) D[i][k] += D[i + 1][k];
12431
+ if (nEqualSteps < order + 1) continue;
12432
+ const errM = order > 1 ? _rms(D[order].map((v, i) => BDF_ERROR_CONST[order - 1] * v / scale4[i])) : Infinity;
12433
+ const errP = order < BDF_MAX_ORDER ? _rms(D[order + 2].map((v, i) => BDF_ERROR_CONST[order + 1] * v / scale4[i])) : Infinity;
12434
+ const errNorms = [errM, errorNorm, errP];
12435
+ const factors = errNorms.map((e, i) => Math.pow(e, -1 / (order + i)));
12436
+ let best = 0;
12437
+ for (let i = 1; i < 3; i++) if (factors[i] > factors[best]) best = i;
12438
+ order += best - 1;
12439
+ const factor2 = Math.min(BDF_MAX_FACTOR, safety * factors[best]);
12440
+ hAbs *= factor2;
12441
+ _bdfChangeD(D, order, factor2);
12442
+ nEqualSteps = 0;
12443
+ }
12444
+ if (iter >= maxIter) {
12445
+ throw new Error("Maximum number of iterations reached, try changing options");
12446
+ }
12447
+ return { t: tOut, y: yOut };
12448
+ }
12449
+ var RADAU_NEWTON_MAXITER = 6;
12450
+ var RADAU_MIN_FACTOR = 0.2;
12451
+ var RADAU_MAX_FACTOR = 10;
12452
+ var _S6 = Math.sqrt(6);
12453
+ var RADAU_A = [
12454
+ [(88 - 7 * _S6) / 360, (296 - 169 * _S6) / 1800, (-2 + 3 * _S6) / 225],
12455
+ [(296 + 169 * _S6) / 1800, (88 + 7 * _S6) / 360, (-2 - 3 * _S6) / 225],
12456
+ [(16 - _S6) / 36, (16 + _S6) / 36, 1 / 9]
12457
+ ];
12458
+ var RADAU_C = [(4 - _S6) / 10, (4 + _S6) / 10, 1];
12459
+ var RADAU_E = [(-13 - 7 * _S6) / 3, (-13 + 7 * _S6) / 3, -1 / 3];
12460
+ var RADAU_MU_REAL = 3 + Math.pow(3, 2 / 3) - Math.pow(3, 1 / 3);
12461
+ function _radauPredictFactor(hAbs, hAbsOld, errNorm, errNormOld) {
12462
+ const mult = errNormOld === null || hAbsOld === null || errNorm === 0 ? 1 : hAbs / hAbsOld * Math.pow(errNormOld / errNorm, 0.25);
12463
+ return Math.min(1, mult) * Math.pow(errNorm, -0.25);
12464
+ }
12465
+ function _radauNewton(f, t, y, h, J, scale4, tol) {
12466
+ const n = y.length;
12467
+ const Z = [
12468
+ new Array(n).fill(0),
12469
+ new Array(n).fill(0),
12470
+ new Array(n).fill(0)
12471
+ ];
12472
+ const big = Array.from({ length: 3 * n }, () => new Array(3 * n).fill(0));
12473
+ for (let i = 0; i < 3; i++) {
12474
+ for (let k2 = 0; k2 < 3; k2++) {
12475
+ const a = h * RADAU_A[i][k2];
12476
+ for (let r = 0; r < n; r++) {
12477
+ for (let col = 0; col < n; col++) {
12478
+ big[i * n + r][k2 * n + col] = (i === k2 && r === col ? 1 : 0) - a * J[r][col];
12479
+ }
12480
+ }
12481
+ }
12482
+ }
12483
+ const solveBig = _factorSolver(big, 3 * n);
12484
+ let dWNormOld = null;
12485
+ let rate = 0;
12486
+ let converged = false;
12487
+ let k = 0;
12488
+ for (; k < RADAU_NEWTON_MAXITER; k++) {
12489
+ const F = [
12490
+ _fArr(
12491
+ f,
12492
+ t + RADAU_C[0] * h,
12493
+ y.map((yi, r) => yi + Z[0][r])
12494
+ ),
12495
+ _fArr(
12496
+ f,
12497
+ t + RADAU_C[1] * h,
12498
+ y.map((yi, r) => yi + Z[1][r])
12499
+ ),
12500
+ _fArr(
12501
+ f,
12502
+ t + RADAU_C[2] * h,
12503
+ y.map((yi, r) => yi + Z[2][r])
12504
+ )
12505
+ ];
12506
+ if (!F.every((row2) => row2.every((v) => Number.isFinite(v)))) break;
12507
+ const rhs = new Array(3 * n).fill(0);
12508
+ for (let i = 0; i < 3; i++) {
12509
+ for (let r = 0; r < n; r++) {
12510
+ let acc = Z[i][r];
12511
+ for (let j = 0; j < 3; j++) acc -= h * RADAU_A[i][j] * F[j][r];
12512
+ rhs[i * n + r] = -acc;
12513
+ }
12514
+ }
12515
+ const dZ = solveBig(rhs);
12516
+ let sq = 0;
12517
+ for (let i = 0; i < 3; i++) for (let r = 0; r < n; r++) sq += (dZ[i * n + r] / scale4[r]) ** 2;
12518
+ const dWNorm = Math.sqrt(sq / (3 * n));
12519
+ if (dWNormOld !== null) rate = dWNorm / dWNormOld;
12520
+ if (dWNormOld !== null && (rate >= 1 || Math.pow(rate, RADAU_NEWTON_MAXITER - k) / (1 - rate) * dWNorm > tol)) {
12521
+ break;
12522
+ }
12523
+ for (let i = 0; i < 3; i++) for (let r = 0; r < n; r++) Z[i][r] += dZ[i * n + r];
12524
+ if (dWNorm === 0 || dWNormOld !== null && rate / (1 - rate) * dWNorm < tol) {
12525
+ converged = true;
12526
+ k++;
12527
+ break;
12528
+ }
12529
+ dWNormOld = dWNorm;
12530
+ }
12531
+ return { converged, nIter: k, Z, rate };
12532
+ }
12533
+ function radauSolve(f, tspan, y0raw, options = {}) {
12534
+ const t0 = tspan[0];
12535
+ const tf = tspan[1];
12536
+ if (!(typeof t0 === "number" && typeof tf === "number")) {
12537
+ throw new Error('The "Radau" stiff method requires numeric tspan');
12538
+ }
12539
+ if (!y0raw.every((v) => typeof v === "number")) {
12540
+ throw new Error('The "Radau" stiff method requires plain-number state (y0)');
12541
+ }
12542
+ const y0 = y0raw;
12543
+ const n = y0.length;
12544
+ const dir = tf >= t0 ? 1 : -1;
12545
+ const rtol = options.tol ? options.tol : 1e-4;
12546
+ const atol = rtol * 1e-3;
12547
+ const maxIter = options.maxIter ? options.maxIter : 1e5;
12548
+ const maxStep = options.maxStep ?? Infinity;
12549
+ const newtonTol = _newtonTol(rtol);
12550
+ let t = t0;
12551
+ let y = y0.slice();
12552
+ let hAbs = options.firstStep ? Math.abs(options.firstStep) : _selectInitialStep(f, t0, y0, tf, maxStep, _fArr(f, t, y), dir, 3, rtol, atol);
12553
+ let hAbsOld = null;
12554
+ let errNormOld = null;
12555
+ const tOut = [t];
12556
+ const yOut = [y.slice()];
12557
+ let iter = 0;
12558
+ while ((dir > 0 ? t < tf : t > tf) && iter < maxIter) {
12559
+ iter++;
12560
+ const minStep = _minStep(t);
12561
+ let hEntry;
12562
+ if (hAbs > maxStep) {
12563
+ hEntry = maxStep;
12564
+ hAbs = maxStep;
12565
+ hAbsOld = null;
12566
+ errNormOld = null;
12567
+ } else if (hAbs < minStep) {
12568
+ hEntry = minStep;
12569
+ hAbs = minStep;
12570
+ hAbsOld = null;
12571
+ errNormOld = null;
12572
+ } else {
12573
+ hEntry = hAbs;
12574
+ }
12575
+ const f0 = _fArr(f, t, y);
12576
+ const J = _jacobianAt(f, t, y, f0, options);
12577
+ let stepAccepted = false;
12578
+ let rejected = false;
12579
+ let yNew = y;
12580
+ let errNorm = 0;
12581
+ let nIter = 1;
12582
+ let tNew = t;
12583
+ while (!stepAccepted) {
12584
+ if (hAbs < minStep) {
12585
+ throw new Error("Required step size is less than spacing between numbers (Radau)");
12586
+ }
12587
+ let h = hAbs * dir;
12588
+ tNew = t + h;
12589
+ if (dir * (tNew - tf) > 0) tNew = tf;
12590
+ h = tNew - t;
12591
+ hAbs = Math.abs(h);
12592
+ const scale4 = y.map((yi) => atol + Math.abs(yi) * rtol);
12593
+ const res = _radauNewton(f, t, y, h, J, scale4, newtonTol);
12594
+ if (!res.converged) {
12595
+ hAbs *= 0.5;
12596
+ continue;
12597
+ }
12598
+ nIter = res.nIter;
12599
+ const Z = res.Z;
12600
+ yNew = y.map((yi, r) => yi + Z[2][r]);
12601
+ const ze = new Array(n).fill(0);
12602
+ for (let r = 0; r < n; r++) {
12603
+ ze[r] = f0[r] + (RADAU_E[0] * Z[0][r] + RADAU_E[1] * Z[1][r] + RADAU_E[2] * Z[2][r]) / h;
12604
+ }
12605
+ const Merr = J.map((rowv, i) => rowv.map((v, j) => (i === j ? RADAU_MU_REAL / h : 0) - v));
12606
+ const solveErr = _factorSolver(Merr, n);
12607
+ let error = solveErr(ze);
12608
+ const escale = y.map((yi, r) => atol + Math.max(Math.abs(yi), Math.abs(yNew[r])) * rtol);
12609
+ errNorm = _rms(error.map((v, r) => v / escale[r]));
12610
+ const safety2 = 0.9 * (2 * RADAU_NEWTON_MAXITER + 1) / (2 * RADAU_NEWTON_MAXITER + nIter);
12611
+ if (rejected && errNorm > 1) {
12612
+ const yErr = y.map((yi, r) => yi + error[r]);
12613
+ const fErr = _fArr(f, t, yErr);
12614
+ error = solveErr(fErr.map((v, r) => v + ze[r] - f0[r]));
12615
+ errNorm = _rms(error.map((v, r) => v / escale[r]));
12616
+ }
12617
+ if (errNorm > 1) {
12618
+ const factor3 = _radauPredictFactor(hAbs, hAbsOld, errNorm, errNormOld);
12619
+ hAbs *= Math.max(RADAU_MIN_FACTOR, safety2 * factor3);
12620
+ rejected = true;
12621
+ } else {
12622
+ stepAccepted = true;
12623
+ }
12624
+ }
12625
+ const safety = 0.9 * (2 * RADAU_NEWTON_MAXITER + 1) / (2 * RADAU_NEWTON_MAXITER + nIter);
12626
+ let factor2 = _radauPredictFactor(hAbs, hAbsOld, errNorm, errNormOld);
12627
+ factor2 = Math.min(RADAU_MAX_FACTOR, safety * factor2);
12628
+ if (factor2 < 1.2) factor2 = 1;
12629
+ hAbsOld = hEntry;
12630
+ errNormOld = errNorm;
12631
+ t = tNew;
12632
+ y = yNew;
12633
+ tOut.push(t);
12634
+ yOut.push(y.slice());
12635
+ hAbs *= factor2;
12636
+ }
12637
+ if (iter >= maxIter) {
12638
+ throw new Error("Maximum number of iterations reached, try changing options");
12639
+ }
12640
+ return { t: tOut, y: yOut };
12641
+ }
12202
12642
  var createSolveODE = /* @__PURE__ */ factory(
12203
12643
  name,
12204
12644
  dependencies,
@@ -12505,7 +12945,9 @@ var createSolveODE = /* @__PURE__ */ factory(
12505
12945
  RK23: _rk23,
12506
12946
  RK45: _rk45,
12507
12947
  ROSENBROCK: rosenbrockSolve,
12508
- RODAS: rodasSolve
12948
+ RODAS: rodasSolve,
12949
+ BDF: bdfSolve,
12950
+ RADAU: radauSolve
12509
12951
  };
12510
12952
  if (method.toUpperCase() in methods) {
12511
12953
  const methodOptions = { ...opt };
@@ -13415,9 +13857,84 @@ function powerfit(xs, ys) {
13415
13857
  const lna = (sy - b * sx) / n;
13416
13858
  return [Math.exp(lna), b];
13417
13859
  }
13860
+ var _DP_C = [0, 1 / 5, 3 / 10, 4 / 5, 8 / 9, 1, 1];
13861
+ var _DP_A = [
13862
+ [],
13863
+ [1 / 5],
13864
+ [3 / 40, 9 / 40],
13865
+ [44 / 45, -56 / 15, 32 / 9],
13866
+ [19372 / 6561, -25360 / 2187, 64448 / 6561, -212 / 729],
13867
+ [9017 / 3168, -355 / 33, 46732 / 5247, 49 / 176, -5103 / 18656],
13868
+ [35 / 384, 0, 500 / 1113, 125 / 192, -2187 / 6784, 11 / 84]
13869
+ ];
13870
+ var _DP_B = [35 / 384, 0, 500 / 1113, 125 / 192, -2187 / 6784, 11 / 84, 0];
13871
+ var _DP_BHAT = [5179 / 57600, 0, 7571 / 16695, 393 / 640, -92097 / 339200, 187 / 2100, 1 / 40];
13872
+ function _adaptiveRK45System(f, y0, tspan, tol, maxSteps) {
13873
+ const n = y0.length;
13874
+ const [t0, tf] = tspan;
13875
+ const dir = tf >= t0 ? 1 : -1;
13876
+ const rtol = tol;
13877
+ const atol = tol * 1e-3;
13878
+ const ts = [t0];
13879
+ const ys = [y0.slice()];
13880
+ let t = t0;
13881
+ let y = y0.slice();
13882
+ const f0 = f(t, y);
13883
+ const rms = (v) => {
13884
+ let s = 0;
13885
+ for (let i = 0; i < v.length; i++) s += v[i] * v[i];
13886
+ return Math.sqrt(s / v.length);
13887
+ };
13888
+ const d0 = rms(y);
13889
+ const d1 = rms(f0);
13890
+ let h = dir * Math.min(d0 < 1e-5 || d1 < 1e-5 ? 1e-6 : 0.01 * (d0 / d1), Math.abs(tf - t0));
13891
+ let steps = 0;
13892
+ while ((dir > 0 ? t < tf : t > tf) && steps < maxSteps) {
13893
+ steps++;
13894
+ if (Math.abs(h) > Math.abs(tf - t)) h = tf - t;
13895
+ const k = [f(t, y)];
13896
+ for (let s = 1; s < 7; s++) {
13897
+ const ys_ = y.slice();
13898
+ for (let j = 0; j < s; j++) {
13899
+ const aij = _DP_A[s][j];
13900
+ if (aij === 0) continue;
13901
+ for (let i = 0; i < n; i++) ys_[i] += h * aij * k[j][i];
13902
+ }
13903
+ k.push(f(t + _DP_C[s] * h, ys_));
13904
+ }
13905
+ const yNew = y.slice();
13906
+ let errNorm = 0;
13907
+ for (let i = 0; i < n; i++) {
13908
+ let sum5 = 0;
13909
+ let errI = 0;
13910
+ for (let s = 0; s < 7; s++) {
13911
+ sum5 += _DP_B[s] * k[s][i];
13912
+ errI += (_DP_B[s] - _DP_BHAT[s]) * k[s][i];
13913
+ }
13914
+ yNew[i] = y[i] + h * sum5;
13915
+ const sc = atol + rtol * Math.max(Math.abs(y[i]), Math.abs(yNew[i]));
13916
+ errNorm += (h * errI / sc) ** 2;
13917
+ }
13918
+ errNorm = Math.sqrt(errNorm / n);
13919
+ if (errNorm <= 1 || Math.abs(h) <= 1e-14 * Math.abs(t)) {
13920
+ t += h;
13921
+ y = yNew;
13922
+ ts.push(t);
13923
+ ys.push(y.slice());
13924
+ }
13925
+ h *= Math.min(5, Math.max(0.2, 0.9 * Math.pow(errNorm || 1e-10, -1 / 5)));
13926
+ }
13927
+ if (steps >= maxSteps) {
13928
+ throw new Error("Maximum number of steps reached in solveODESystem, try changing options");
13929
+ }
13930
+ return { t: ts, y: ys };
13931
+ }
13418
13932
  function solveODESystem(f, y0, tspan, opts) {
13933
+ if (opts?.dt === void 0) {
13934
+ return _adaptiveRK45System(f, y0, tspan, opts?.tol ?? 1e-6, opts?.maxSteps ?? 1e5);
13935
+ }
13419
13936
  const n = y0.length;
13420
- const dt = opts?.dt ?? (tspan[1] - tspan[0]) / 200;
13937
+ const dt = opts.dt;
13421
13938
  const nSteps = Math.ceil((tspan[1] - tspan[0]) / dt);
13422
13939
  const h = (tspan[1] - tspan[0]) / nSteps;
13423
13940
  const ts = [tspan[0]];
@@ -28,7 +28,7 @@ type ODEEvents = EventFunction | EventSpec | Array<EventFunction | EventSpec>;
28
28
  * Options for ODE solver
29
29
  */
30
30
  interface ODEOptions {
31
- method?: 'RK23' | 'RK45' | 'Rosenbrock' | 'RODAS';
31
+ method?: 'RK23' | 'RK45' | 'Rosenbrock' | 'RODAS' | 'BDF' | 'Radau';
32
32
  tol?: number;
33
33
  firstStep?: number | Unit;
34
34
  minStep?: number | Unit;
@@ -90,6 +90,31 @@ export declare function rodasSolve(f: ForcingFunction, tspan: unknown[], y0raw:
90
90
  t: number[];
91
91
  y: number[][];
92
92
  };
93
+ /**
94
+ * BDF variable-order (1–5) variable-step stiff solver — scipy's default `method='BDF'`. Adaptive
95
+ * local-error control drives step size and order (1–5) automatically; Newton iteration on the
96
+ * implicit BDF formula reuses the shared Jacobian machinery and the `(I − c·J)` dense LU solve
97
+ * (`_factorSolver`) the Rosenbrock/RODAS paths use. Plain-number state only.
98
+ *
99
+ * Module-level for the same reason as `rosenbrockSolve`/`rodasSolve`: a pure-numeric engine with no
100
+ * factory-scope dependency, routed from `createSolveODE`'s `BDF` method branch.
101
+ */
102
+ export declare function bdfSolve(f: ForcingFunction, tspan: unknown[], y0raw: unknown[], options?: ODEOptions): {
103
+ t: number[];
104
+ y: number[][];
105
+ };
106
+ /**
107
+ * Radau IIA (order-5, L-stable) stiff solver — scipy's `method='Radau'`. Simplified-Newton on the
108
+ * real 3n×3n collocation system per step (Jacobian analytic via `options.jac` or finite-differenced,
109
+ * reused across the step's Newton iterations), third-order embedded error estimate for adaptive
110
+ * stepping. Plain-number state only.
111
+ *
112
+ * Module-level for the same reason as `rosenbrockSolve`/`rodasSolve`/`bdfSolve`.
113
+ */
114
+ export declare function radauSolve(f: ForcingFunction, tspan: unknown[], y0raw: unknown[], options?: ODEOptions): {
115
+ t: number[];
116
+ y: number[][];
117
+ };
93
118
  export declare const createSolveODE: import("../utils/factory.js").FactoryFunction<any, any>;
94
119
  export {};
95
120
  //# sourceMappingURL=solveODE.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solveODE.d.ts","sourceRoot":"","sources":["../../src/numeric/solveODE.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAU,IAAI,EAAa,MAAM,aAAa,CAAC;AAkCvF;;;;;;;;;;;GAWG;AACH,UAAU,aAAa;IACrB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4FAA4F;AAC5F,UAAU,SAAS;IACjB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,KAAK,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;AAS9E;;GAEG;AACH,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IAC7C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAcD;;GAEG;AACH,KAAK,eAAe,GAAG,CACrB,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,GAAG,SAAS,KAC3B,eAAe,GAAG,SAAS,CAAC;AAmWjC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,UAAe,GACvB;IAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAmFhC;AAgDD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,UAAe,GACvB;IAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAiHhC;AAED,eAAO,MAAM,cAAc,yDAyrB1B,CAAC"}
1
+ {"version":3,"file":"solveODE.d.ts","sourceRoot":"","sources":["../../src/numeric/solveODE.ts"],"names":[],"mappings":"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"}
@@ -233,12 +233,18 @@ export interface ODESolution {
233
233
  y: number[][];
234
234
  }
235
235
  /**
236
- * Solve a system of ODEs dy/dt = f(t, y) using RK45 (Dormand-Prince).
236
+ * Solve a system of ODEs dy/dt = f(t, y).
237
+ *
238
+ * By default (no `dt`) it uses **adaptive** embedded RK45 (Dormand-Prince) with local-error control
239
+ * — the step size is chosen automatically to keep the scaled RMS error under `tol`. Passing an
240
+ * explicit `dt` selects the legacy **fixed-step** RK4 integrator instead (unchanged, for callers
241
+ * that want a prescribed step, e.g. the BVP shooting driver).
237
242
  *
238
243
  * @param f - System function (t, y) => dy/dt
239
244
  * @param y0 - Initial state vector
240
245
  * @param tspan - [t0, tf] time span
241
- * @param opts - Options (tol, maxIter for max steps)
246
+ * @param opts - Options: `tol` (adaptive local-error tolerance, default 1e-6), `maxSteps` (step
247
+ * cap), `dt` (fixed step — selects the legacy fixed-step RK4 path)
242
248
  * @returns Solution { t, y }
243
249
  */
244
250
  export declare function solveODESystem(f: (t: f64, y: number[]) => number[], y0: number[], tspan: [f64, f64], opts?: {
@@ -1 +1 @@
1
- {"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../src/typed/numeric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../src/typed/numeric.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/mathts-functions",
3
- "version": "0.50.0",
3
+ "version": "0.51.0",
4
4
  "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",