Dev - C++ - Programar Heun de 2 etapas

 
Vista:

Programar Heun de 2 etapas

Publicado por Maria (1 intervención) el 14/11/2012 23:23:39
Necesito entregar esta practica: Es una funcion que haga lo que pone en la descripcion.

void f???rk2e(int n,double (*der)(),double (*ver)(),double y[], int npas,double *error,double trabajo[])
/*
DESCRIPCION:
integra en [0,1] un sistema autonomo de n ecuaciones de primer orden
con n funciones incognita,
y1’ = f1 ( y1, ..., yn)
.......................
yn’ = fn ( y1, ..., yn)
con una condicion inicial en 0
y1(0) = z1, ..., yn(0) = zn
Para ello emplea el metodo ’de HEUN de 2 etapas’. La integracion se realiza en [0,1] , dando npas pasos. A la entrada, el argumento y[] contiene los valores de z1,...,zn ; a la salida, contiene el valor de la solucion en 1 . Ademas, la variable error devuelve a la salida la norma euclídea del error de la solucion numerica obtenida respecto del valor en 1 de
la verdadera solucion que en 0 vale (z1,...,zn)

PRECISION: doble

DESCRIPCION DE LOS ARGUMENTOS:
La funcion posee vectores de tamano arbitrario (pasado por el usuario) y[] y trabajo[] . Cualquier otro vector o matriz con que se desee trabajar en la funcion debera ser de tamano constante
Como hay que utilizar la raiz cuadrada sera necesario #include <math.h>

int n contiene el numero de ecuaciones y de funciones incognita

double (*der)() puntero de una funcion que se encarga de evaluar las derivadas f1, ...,fn . La funcion der() debe ser creada por el usuario en la siguiente forma
double der(int n,int k,double y[])
A la salida, der() debe devolver el valor de la derivada fk en y[1],...,y[n] sin modificar los argumentos

double (*ver)() puntero de una funcion que se encarga de evaluar la
verdadera solucion. La funcion ver() debe ser creada
por el usuario en la siguiente forma
double ver(int n,int k,double t)
A la salida, ver() debe devolver el valor en t de la
componente k de la verdadera solucion que en 0 vale
(z1,...,zn)

double y[] vector de n+1 componentes que pasa el usuario.
A la entrada, y[k] contiene el valor zk de la solucion yk en 0 . A la salida, y[k] contiene el valor de la solucion yk en la abscisa final 1

int npas contiene el numero de pasos que se van a dar en [0,1]

double *error puntero que apunta a la variable double error. A la entrada, el valor de *error es irrelevante. A la salida, *error contiene la norma euclidea del error de la solucion numerica
obtenida respecto del valor en 1 de la verdadera solucion que en 0 vale (z1,...,zn)

double trabajo[]vector de n+1 componentes que pasa el usuario. Es un vector
de trabajo de la rutina. Sus valores a la entrada y a la salida son irrelevantes
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder