如何在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?
答案 0 :(得分:0)
您不仅可以获得一个解决方案,而且可以获得一系列由初始条件参数化的解决方案。通过每个点(x0,y0)
都有一个解决方案,有些(但不是全部)会提供相同的解决方案。
因此y(w)=0
resp。对(x0=w, y0=0)
将为每个w
提供解决方案,获取w
的特定值无需解决任何问题。
?? w
可以代表omega
吗?无穷大?这是控制渐近行为的有效问题。
这个问题的唯一关键点是x=0
,甚至只有y(0)<0
,因为那时微分方程有一个奇点。