Computer Science, asked by piyushTiwari2866, 11 months ago

Make it work and adding runge-kutta method in c++

Answers

Answered by Zisha7
0

Answer:

favorite

Runge-Kutta method on c++

c++ c++11 runge-kutta

i'm trying to code a simple runge-kutta method

The function to be approximated and the runge-kutta method are separate definitions, which are called within the loop in the main function.

approximate solutions for y and t are pushed into a separate vectors.

I'm receiving the following errors and struggling to figure out why: Error message snapshot

The code:

//Runge Kutta

#include "C:\Users\Erez\Documents\Dev C++ Projects\std_lib_facilities.h"

double f (double t,double y){

f = t + y;

return f;

}

double rk4funct (double t,double y,double d){

double k1, k2, k3, k4;

k1 = d * f(t, y);

k2 = d * f(t+0.5*d, y+0.5*k1);

k3 = d * f(t+0.5*d, y+0.5*k2);

k4 = d * f(t+d, y+k3);

return k1, k2, k3, k4;

}

int main (){

vector<double> yvector;

vector<double> tvector;

double y0 {0}; //initial y value

double t0 {0}; //initial time value

double d {0}; //step size

int n {0}; //number of iterations

cout << "Please input variables according to the following order: step size, y0, t0, n(# of iterations)\n";

cin >> d >> y0 >> t0 >> n;

yvector.push_back(y0);

tvector.push_back(t0);

for (int i {0}; i<n; ++i;) {

rk4funct (tvector[i], yvector[i], d);

yvector[i+1] = yvector[i] + (d/6)*(k1+2k2+2k3+k4);

tvector[i+1] = tvector[i] + d; //same here.

}

}

Similar questions