通过数值逼近(与符号计算相反)解决数学问题的算法。
迭代求解器比基于 LU 分解的直接求解器更稳定吗?对于基于 LU 的求解器,我们总是有 cond(A) < cond(L) * cond(U), so factorization amplifies numerical inaccuracy. So...
Burden & Faires 中的浮点问题以及高斯消元法示例
我正在阅读 Burden & Faires 第 9 版第 360 页第 6.2 节。它包含一个示例,旨在说明在没有行交换的情况下高斯消除的数值不稳定性......
有没有一种简单的方法可以判断 varchar 是否是数字? 示例: abc123 --> 没有号码 123 --> 是的,它是一个数字
有没有一种简单的方法可以判断 varchar 是否是数字? 示例: abc123 --> 没有号码 123 --> 是的,它是一个数字
我目前正在努力绘制 R 中的下一个函数。 (F1 / F2^m * (R1 - F1)^((1 - s) / s)) - (m * (((R1 - F1))^(1 / s) + ((R2 - F2))^ (1 / 秒)) / (F1^m + F2^m)) = 0 我想将 F2 绘制为
如果我们计算像 A=[1 2 3;4 5 6;7 8 9] 这样的秩亏矩阵的 QR 分解,R 矩阵的一些对角项将非常小。然而,当在 Ju 中进行数值计算时...
使用`solve_ivp`和`LSODA`来求解复杂的ODE
我正在尝试求解复杂的微分方程组。这些方程是刚性的,因此我需要使用一种可以处理复杂的 ODE 和刚度切换的方法。我已经降落在
我需要求解一些常微分方程 $ rac{d y}{d x} = f(x) = x^2 ln(x)$ 并继续在限制 0 之间创建数组 xpt。 <= xpt <= 2. Because I have to be careful ...
我试图用 C 级 LAPACK 替换我的 cython 代码中的 Scipy 的 eigh 例程。本质上我想计算对应于埃尔米特 m 的最大和最小特征值的特征向量...
我有这行涉及矩阵求逆的代码: X = A @ B @ np.linalg.pinv(S) A 是 n × n 矩阵,B 是 n × m 矩阵,S 是 m × m 矩阵。 m 小于 n 但通常不是
最初,我有以下等式: mgv×sin(lpha) = CdA× ho(v^2 + v_{风}^2 + 2vv_{风}cos(\phi))^(3/2) 我可以将其表示为以下非线性方程: K × v^(2/3) = v^2 + v...
所以下面是我为 Julia 准备的代码片段: 使用Printf 使用绘图 gr() # 参数定义 Ny = 21 # y 方向的点数 Aspect_ratio = 10 #
在 Python 中创建球体 S^4 上的一个简短的 d 密集点列表
我是一名数学家,这是我第一次使用 Stack Overflow,如果问题不充分或者有更好的地方可以问这个问题,我很抱歉。 我想知道是否有一个标准...
我正在计算积分值 ∫₀1 ∫₁² (r - u)r drdu 我想了解 R 中如何处理以下错误。 环顾论坛,我意识到
我正在尝试使用不同的数值积分方法来求解Python中的简单积分。然而,当我尝试计算积分时,由于 x 值较小,我得到了错误的结果
我有以下 C++ RK4 算法用于求解一阶微分方程: 使用 ODE_Function = std::function; 模板 我有以下 C++ RK4 算法用于求解一阶微分方程: using ODE_Function = std::function<double/*dy/dx*/(double/*x*/, double/*y*/)>; template<int length> //"length" is the number of data points double* rk4(ODE_Function fxn, double y0, double x0, double h) { double* y = new double[length]; y[0] = y0; //initialize output array double x = x0; //n is our discretized x variable //main loop for (int n = 1; n < length; n++) {//y0 is already known, so we start from the second data point double k1 = fxn(x, y[n-1]); double k2 = fxn(x + h/2, y[n-1] + h*k1/2); double k3 = fxn(x + h/2, y[n-1] + h*k2/2); double k4 = fxn(x + h, y[n-1] + h*k3); y[n] = y[n-1] + h/6*(k1 + 2*k2 + 2*k3 + k4); x += h; } return y; } 但是,当 x0 为负数时,这会表现得很奇怪...... 具体来说,以下情况理论上应该输出遵循(-x^2)-2(x+1)趋势的结果,只是从不同的“窗口”来看。但只有最后一个能做到这一点。第一个导致负指数,第二个由于某种原因导致正指数。 double fxn(double x, double y) { return x*x + y; } int main() { const int length = 100; double y0 = -2; double x0 = -1; //LOOK HERE double h = 0.1; double* result = rk4<length>(fxn, y0, x0, h); } double fxn(double x, double y) { return x*x + y; } int main() { const int length = 100; double y0 = -2; double x0 = -5; //LOOK HERE double h = 0.1; double* result = rk4<length>(fxn, y0, x0, h); } double fxn(double x, double y) { return x*x + y; } int main() { const int length = 100; double y0 = -2; double x0 = 0; //LOOK HERE double h = 0.1; double* result = rk4<length>(fxn, y0, x0, h); } 您的 Runge-Kutta 实施没有任何问题 - 只是您对解决方案的期望。 稍微重新排列方程并使用积分因子。你会找到准确的解决方案 y = (y0+x02+2x0+2)exp(x-x0)-x2-2x-2 用你的 main() 函数尝试一下。 (您需要包含 iostream、function 和 cmath 标头。) int main() { const int length = 100; double y0 = -2; double x0 = -5; //LOOK HERE double h = 0.1; double* result = rk4<length>(fxn, y0, x0, h); for ( int i = 0; i < length; i++ ) { double x = x0 + i * h; double exact = ( y0 + x0 * x0 + 2 * x0 + 2 ) * exp( x - x0 ) - x * x - 2 * x - 2; cout << i << '\t' << x << '\t' << result[i] << '\t' << exact << '\n'; } }
如果我在 Julia 中有一些像 1.1 这样的数字,是否有任何函数/方法可以将此 Float64 舍入到下一个最大整数?例如,什么函数/方法可以将 1.1 舍入为 2?
我正在寻找(在Python中)求解形式为x'(t) = f(x(t),y(t))的微分代数方程,对于函数g,满足g(x)=0: R^n->R^m 定义状态变量 x 的约束...
我有一个名为“电压”的 numpy 数组,它应该以 1ps 的时间步长从 0 变为 1。事情是有时它可能不会从 0 到 1,它可能会从 0 上升并回到 1。 我想测量...
如何将 numpy.gradient() 与坐标数组一起使用?
我有三个一维数组,表示矩形空间区域上的一些空间数据 (u):第一个数组包含 x 坐标,第二个数组包含 y 坐标,第三个数组包含...