Metodos

Páginas: 2 (366 palabras) Publicado: 12 de febrero de 2013
Implementación en C
La siguiente función en C resolverá el sistema (aunque sobreescribirá el vector de entrada c en el proceso). Se ha de notar que aquí los subíndices están basados en el cero, esdecir donde es el número de ecuaciones:
void solve_tridiagonal_in_place_destructive(float x[], const size_t N, const float a[], const float b[], float c[]) {
size_t n;/*
solves Ax = v where A is a tridiagonal matrix consisting of vectors a, b, c
note that contents of input vector c will bemodified, making this a one-time-use function
x[] - initially contains the input vector v, and returns the solution x. indexed from [0, ..., N - 1]
N - number of equationsa[] - subdiagonal (means it is the diagonal below the main diagonal) -- indexed from [1, ..., N - 1]
b[] - the main diagonal, indexed from [0, ..., N - 1]c[] - superdiagonal (means it is the diagonal above the main diagonal) -- indexed from [0, ..., N - 2]
*/

c[0] = c[0] / b[0];x[0] = x[0] / b[0];

/* loop from 1 to N - 1 inclusive */
for (n = 1; n < N; n++) {
float m = 1.0f / (b[n] - a[n] * c[n -1]);
c[n] = c[n] * m;
x[n] = (x[n] - a[n] * x[n - 1]) * m;
}

/* loop from N - 2 to 0 inclusive */for (n = N - 1; n-- > 0; )
x[n] = x[n] - c[n] * x[n + 1];
}
La siguiente variante preserva el sistema de ecuaciones para reutilizarlo en otras funciones. Se hacenllamadas a la biblioteca para reservar más especiao. Otras variantes usan un puntero a memoria disponible.
void solve_tridiagonal_in_place_reusable(float x[], const size_t N, const...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Metodos De Metodos
  • El Método
  • Metodo
  • El Método
  • Metodo
  • Metodos
  • Metodos
  • Metodos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS