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



如何在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呢?

您不仅得到一个解,还得到一组由初始条件参数化的解。通过每一个点(x0,y0)都有一个解,一些(但不是全部)将给出相同的解。

因此CCD_ 3分别。对(x0=w, y0=0)将为每个w给出一个解,没有什么可以求解的来获得w的特定值。

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


这个问题的唯一临界点是x=0,甚至只有y(0)<0,从那时起,微分方程就具有奇异性。

最新更新