⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runge_kutta72.java

📁 数值分析之计算方法与实验7:常微分方程数值解法 by java
💻 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 + -