#include<stdio.h>
#include<stdlib.h>
#include"vector.h"
template<class A> void eiler(A & y, double tau, int nstep, A(*f)(A, double));
template<class A> void eiler(A & y, double tau, int nstep, A(*f)(A, double)) {
for (int i = 0; i < nstep; i++)y = y + tau * f(y, i * tau);
}
Vector right(Vector y, double t);
Vector right(Vector y, double t) {
Vector tmp(2);
tmp(1) = y(2);
tmp(2) = y(1);
return tmp;
}
void main() {
Vector y(2);
double tau = 0.001;
int nstep = 10;
y(1) = 0.1;
y(2) = 0.01;
eiler(y, tau, nstep, right);
y.print();
}
#include<stdlib.h>
#include"vector.h"
template<class A> void eiler(A & y, double tau, int nstep, A(*f)(A, double));
template<class A> void eiler(A & y, double tau, int nstep, A(*f)(A, double)) {
for (int i = 0; i < nstep; i++)y = y + tau * f(y, i * tau);
}
Vector right(Vector y, double t);
Vector right(Vector y, double t) {
Vector tmp(2);
tmp(1) = y(2);
tmp(2) = y(1);
return tmp;
}
void main() {
Vector y(2);
double tau = 0.001;
int nstep = 10;
y(1) = 0.1;
y(2) = 0.01;
eiler(y, tau, nstep, right);
y.print();
}