numerical-methods

    2热度

    1回答

    我正在使用RK4解决一个ODE系统。我正在生成一条直线图,这似乎是由于k3_1的上限为-3.1445e + 24。我不明白为什么它被封顶。 function RK4system_MNModel() parsec = 3.08*10^18; r_1 = 8.5*1000.0*parsec; % in cm z_1 = 0.0; % in cm also theta_1 = 0.0

    1热度

    2回答

    我在MATLAB中编写了一个自适应步长RK4来解决一个ODE系统。代码运行时没有错误,但是当我尝试对y绘制x时,它不会生成所需的曲线。而不是一个环形的形状,我只是得到一条平坦的线。这从r正在输出一个常数值的事实可以看出。在检查每行的输出后,它们不输出常量或错误或inf或NaN,而是输出实数和虚数分量(复数)。我不知道为什么会发生这种情况,我相信这是我麻烦的根源。 function AdaptRK4

    5热度

    1回答

    我的朋友目前正在完成他的关于具有最大似然估计(MLE)方法的时间序列模型参数估计SARIMAX(季节性ARIMA外生)的任务。他使用的数据是关于2000 - 2012年的月降水量,印度洋偶极子(IOD)指数作为外生变量。 这里是数据: MONTH YEAR RAINFALL IOD 1 1 2000 15.3720526 0.0624 2 2 2000 10.3440804 0.1784

    2热度

    2回答

    我一直在努力寻找一个强大的函数来计算三维数组的梯度。 numpy.gradient支持最高2阶精度。有没有其他方法可以更好地计算梯度?谢谢。

    0热度

    1回答

    我想使用Gauss-Legendre积分来评估双积分。我想出了以下代码 m=5000; %generate weights and abscissas [wx,xx]=leg(-1,1,m); [wy,xy]=leg(-1,1,m); %define function [email protected](x,y) hypergeom(-1./4,3./2,x.^2.*y.^6);

    2热度

    1回答

    我必须执行其具有如下形式的ODE系统的数值求解: du_j/dt = f_1(u_j, v_j, t) + g_1(t)v_(j-1) + h_1(t)v_(j+1), dv_j/dt = f_2(u_j, v_j, t) + g_2(t)u_(j-1) + h_2(t)u_(j+1), 其中u_j(t)和v_j(t)是复值的时间t标量函数,f_i和g_i是给定函数和j = -N,..N。

    1热度

    1回答

    我在Matlab的函数erf/erfc函数的准确性方面存在问题。 正如我们所知,erf(x)只有等于1,如果x是无穷大。 但是,在Matlab中,令我感到惊讶的是erf(6)已经等于1,而6甚至不是很大! erfc(x)更好一点,因为erfc(27)非零,而erfc(28)为零。 有没有办法提高这个函数的数值性能?即,增加erf(x)的值的范围以获得不完全是1的值? (并且erfc也是0)

    0热度

    1回答

    我在Matlab中使用polyeig命令来解决Matlab中的阶2的多项式特征值问题。我知道系统有一个单独的0特征值(这是由于零系数矩阵的形式,其中每个对角线元素是-1行乘以在同一行中的元素的总和,所以向量(1 1 1 ... 1 )有0个特征值)。 系统的尺寸为约150〜150。 当我使用polyeig命令的最低特征值我得到的是顺序1E-4(其被认为是0的特征值)和所述第二最低是的为了1E-1。

    0热度

    2回答

    我必须计算一些复积分,为此我从我的导师旧程序中编写Fortran 77.但是我几乎没有遇到任何问题。大多数与DATA语句的语法错误有关。这是代码的函数计算实积分的一部分: FUNCTION CAUSSA(F,A,B,EPS) IMPLICIT DOUBLE PRECISION (A-H,O-Z) external f REAL :: W(12),X(12)

    -1热度

    2回答

    我想写其计算形式的子程序给出一个函数的n阶导数的子程序: double func(double x) { // a mathematical expression representing a smooth curve //returns the value of the function at x } 我写了下面的子程序: double nthderive(doub