Java中的Euler方法,变量初始条件

时间:2015-12-11 03:24:34

标签: java math physics differential-equations calculus

如何在Java中为可变初始条件编写Euler方法?例如,y(w)=0的初始条件。

我想解决的等式是:

dy/dx = (y-sqrt(x^2 + y^2))/x

我的初始代码很简单。

import java.lang.Math;
public class euler 
{

    public static void main(String arg[]) 
    {
        int N = 10;

        double h = 1.0/N;
        double x0 = w;       //This is what I would like to put in
        double y0 = 0;   

        double x = x0, y = y0;

        for (int i=0;i < N;i++)  
        {
            y += h*f(x, y);
            x += h;

            System.out.println("x, y = " + x + ", " + y);
        }
    }

    static double f(double x, double y) 
    {
        return((y-Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)))/x);
    }

}

我的代码应该适用于任何类型的x0的整数值,但是我怎么能让它适用于变量w?

1 个答案:

答案 0 :(得分:0)

您不仅可以获得一个解决方案,而且可以获得一系列由初始条件参数化的解决方案。通过每个点(x0,y0)都有一个解决方案,有些(但不是全部)会提供相同的解决方案。

因此y(w)=0 resp。对(x0=w, y0=0)将为每个w提供解决方案,获取w的特定值无需解决任何问题。

?? w可以代表omega吗?无穷大?这是控制渐近行为的有效问题。

这个问题的唯一关键点是x=0,甚至只有y(0)<0,因为那时微分方程有一个奇点。