在特定点从DifferentialEquations.jl输出

时间:2019-03-13 02:52:19

标签: julia differential-equations

我正在尝试使用Julia的DifferentialEquations.jl。我设法使其工作,但我想知道如何在特定时间点生成输出。该文档尚不清楚,我还没有找到一个可以做到这一点的例子。我当前使用的代码来自该教程:

function checkEmailExists() {

    const email = $F('email');

    if(email!=''){
        const url = '/global/validate/?action=check-email-exists&e=' + email;
        let result;

        fetch(url)
        .then(async function(data){
            result = await data.text();
            if(result == 'OK'){
                setMessage('message', defaultMessage, 'classInfo');
                $('email').addClassName('ok-field');
            }
            if(result == 'EXISTS'){
                setMessage('message', 'Email address is already registered., 'classBad');
                $('email').addClassName('bad-field');
            }
            if(result == 'INVALID'){
                setMessage('message', 'Email address is invalid.', 'classBad');
                $('email').addClassName('bad-field');
            }
        })
        .catch(function(error) {
            console.log(error);
        });
    }
}

目前它产生1287分,我不知道它是如何决定的。我的问题是,如果我想在范围0到100之间生成20个点怎么办?

1 个答案:

答案 0 :(得分:2)

The ODE tutorial section on "Controlling the Solvers"演示了为此目的使用saveat的情况。演示是:

sol = solve(prob,reltol=1e-6,saveat=0.1)

在您的示例中将保存为0.0、0.1...。在其正下方指出:

  

通常,saveat可以是要保存的任何时间点集合。

因此,例如,我们可以使用save at来仅在t = 30、60和78处进行保存,如下所示:

sol = solve(prob,saveat=[30.0,60.0,78.0])

这些示例应该为您指明正确的方向。有关更多详细信息,请参见the Output Controls section of the documentation