如何在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
,从那时起,微分方程就具有奇异性。