Добрый день! Помогите Пожалуйста написать код, чтобы строился график для метода Рунге-Кутта 4-ого порядка!
| Код | package metodrungekutta;
import java.io.*; import static java.lang.Math.*;
public class Main {
PrintWriter out_rk;
public static void main(String[] args) throws Exception { new Main().run(); } int n = 40;
public void run() throws Exception { out_rk = new PrintWriter(new FileWriter("RK.txt")); solve(); out_rk.flush(); out_rk.close(); }
public void solve() throws Exception { RK(); }
public double F(double x) { return 0.125*exp(-cos(x+1)); }
public double f(double x, double y) { return F(x) - g(x) * y; }
public double g(double x) { return -sin(x+1); }
public double RK_4(double x, double y, double h) { double k1 = f(x, y); double k2 = f(x + h / 2, y + h*k1 / 2); double k3 = f(x + h / 2, y + h*k2 / 2); double k4 = f(x + h, y + h*k3); return y + h*(k1 + 2 * k2 + 2 * k3 + k4) / 6; }
public void RK(){ double x0 = -1; double b = 2*PI-1; double y0 = 8; double y1 = y0; double x1 = x0; out_rk.printf("x = %.7f y = %.7f\n", x0, y0); double h = (b - x0) / n; for (int i = 0; i < n; i++) { double y_nplus = RK_4(x1, y1, h); double x_nplus = x1 + h; x1 = x_nplus; y1 = y_nplus; out_rk.printf("x = %.7f y = %.7f\n", x_nplus, y_nplus); } } }
|
|