Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Java] График


Автор: Merhaba 30.3.2014, 10:23
Добрый день! Помогите Пожалуйста написать код, чтобы строился график для метода Рунге-Кутта 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);
        }
    }
}


Автор: Mirkes 3.4.2014, 20:56
А в чем проблема?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)