📄 runge_kutta72.java
字号:
//四阶龙格—库塔公式
import java.io.*;
class Runge_Kutta72{
static void RK(double a,double b,double y10,double y20,int n)throws IOException{
PrintWriter out = new PrintWriter(new FileWriter("result.txt"));
double x=a,y1=y10,y2=y20,k11,k12,k13,k14,k21,k22,k23,k24;
double h=(b-a)/n;
int i;
out.print("x[0]="+a+" y1[0]="+y10+" y2[0]="+y20+"\n");
for(i=1;i<=n;i++){
k11=f1(x,y1,y2);
k21=f2(x,y1,y2);
k12=f1(x+h/2,y1+h*k11/2,y2+h*k21/2);
k22=f2(x+h/2,y1+h*k11/2,y2+h*k21/2);
k13=f1(x+h/2,y1+h*k12/2,y2+h*k22/2);
k23=f2(x+h/2,y1+h*k12/2,y2+h*k22/2);
k14=f1(x+h,y1+h*k13,y2+k23*h);
k24=f2(x+h,y1+h*k13,y2+k23*h);
y1=y1+h*(k11+2*k12+2*k13+k14)/6;
y2=y2+h*(k21+2*k22+2*k23+k24)/6;
x=a+i*h;
out.print("x["+i+"]="+x+" y1["+i+"]="+y1+" y2["+i+"]="+y2+"\n");
}
out.close();
}
static double f1(double x,double y1,double y2){
return 120-2*y1+2*y2;
}
static double f2(double x,double y1,double y2){
return 2*y1-5*y2;
}
public static void main(String[]args)throws IOException{
RK(0.0,1.0,0.0,0.0,10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -