求助,用runge-kutta法解微分方程的java程序。谢谢。
解决方案 »
- 运行包含junit测试的jar
- 在JAVA Application 里播放音频!!!!!
- Swing+xml 生成双击可执行的jar
- c#范型与java范型有什么区别
- 求高手解决java题目
- 在显示新闻标题的时候,文字过长,怎么让超出的部分省略掉变成省略号?
- frame中图片和几个按钮(或者文本区),如何让这些全部都显示出来
- 老鸟进,问个字符集转码的问题
- 有人知道出不了中文的原来的编码是什么吗?
- java小程序为什么用appletviewer命令不能进行?
- 五年的编程经验加上这本书就能写出一个JAVA虚拟机???
- 使用java读取sqlserver中的text类型时出现中文乱码,请大家帮看看。谢谢。
public class Runge
{
public static void main(String[] args)
{
double a,b,h,y0;
double Y[];
a=0.0;b=1.0;h=0.1;y0=1.0;
Y=(new Runge()).runge(a,b,h,y0);
for(int i=0;i<Y.length;i++)
System.out.println("X"+i+"="+Y[i]);
}
double[] runge(double a,double b,double h,double y0)
{
double xi,k1,k2,k3,k4;
int n=(int)((b-a)/h+1);
double[] Y=new double[n];
Y[0]=y0;
for(int i=0;i<n-1;i++)
{
xi=a+i*h;
k1=h*f(xi,Y[i]);
k2=h*f(xi+h/2,Y[i]+k1/2);
k3=h*f(xi+h/2,Y[i]+k2/2);
k4=h*f(xi+h,Y[i]+k3);
Y[i+1]=Y[i]+h/6*(k1+2*k2+2*k3+k4);
}
return Y;
}
double f(double x,double y)
{
return -y;
}
}
将f(x,y)改成你自己需要的,[a,b]是求解区间,h是步长已知y(a)=y0。