Está en la página 1de 7

Integrantes: Juan pablo ariza , Israel navarro

JACOBI

#include<iostream> \\librerias que necesitamos \\

#include<stdlib.h>

#define n 10

using namespace std;

void Jacobi(int l, float x[], float a[][10], float b[]);

int main() {

int i, j, l, cont=0; \\declaramos las variables que vamos a implementar e iniciamos en "cero"\\

float x[n],a[n][n],b[n], dd=0, suma; \\ se implementa el float ya que vamos a utilizar numeros
decimales\\

cout<<"Introduce el numero de ecuaciones: ";

cin>>l;

cout<<"Introduce la matriz con los coeficientes: "<<endl;

for(i=0;i<l;i++) {

x[i]=0;

for(j=0;j<l;j++) {

cout<<"a["<<i<<","<<j<<"]= ";

cin>>a[i][j];

cout<<"Introduce el vector de los resultados: "<<endl;

for(i=0;i<l;i++)

cout<<"b["<<i<<",0]= ";

cin>>b[i];

for(i=0; i<l; i++){

suma=0;
for(j=0; j<l; j++){

if(i==j){

dd=a[i][j];

}else{

suma+=a[i][j];

if(dd>suma){

cont++;

if(cont==l){

Jacobi(l, x, a, b);

}else{

cout<<"La matriz no es diagonalmente dominante (No es el método de jacobi). Proceso

finalizado."<<endl; \\ mediante el contador y los siclos if (si)deduciremos si es dominante o


no \\

system("PAUSE");

return 0;

void Jacobi(int l, float x[], float a[][10], float b[]){

char p;

float c[n];

int k, i, j;

line:

for(k=0; k<10; k++){ \\ ciclos for ya que van a ir incrementando el valor obtenido, mediante ese
proceso conseguiremos lo que estamos buscando\\

for(i=0;i<l;i++) {

c[i]=b[i];
for(j=0;j<l;j++) {

if(i!=j) {

c[i]=c[i]-a[i][j]*x[j];

for(i=0;i<n;i++) {

x[i]=c[i]/a[i][i];

cout<<"La solucion es: "<<endl;

for(i=0;i<l;i++) {

cout<<"x("<<i<<") = "<<x[i]<<endl;

cout<<"¿Requiere que el resultado sea mas preciso?"<<endl;

cout<<"(s) Si"<<endl;

cout<<"(n) No"<<endl;

cin>>p;

switch(p){

case 's': goto line; break;

case 'n': cout<<"Proceso finalizado."<<endl; break;

return;

}
#include<iostream>

#include<conio.h>

using namespace std;

int main(void) {

float a[10][10], b[10], m[10], n[10]; // implementaremos numeros decimales por ende le agrgamos
el float para este proceso\\

int p = 0, q = 0, i = 0, j = 0;

cout << "Ingrese el tamaño de la matriz: ";

cin >> p;

for (i = 0; i < p; i++) {

for (j = 0; j < p; j++) {

cout << "a[" << i << ", " << j << " ]=";

cin >> a[i][j];

cout << "\nIngrese el vector resultado del sistema\n";

for (i = 0; i < p; i++) {

cout << "b[" << i << ", " << j << " ]=";

cin >> b[i];

cout << "Ingrese valores iniciales de x\n";

for (i = 0; i < p; i++) {

cout << "x:[" << i << "]=";

cin >> m[i];

cout << "\nIngrese el número de iteraciones: ";

cin >> q;

while (q> 0) {
for (i = 0; i < p; i++) {

n[i] = (b[i] / a[i][i]);

for (j = 0; j < p; j++) {

if (j == i)

continue;

n[i] = n[i] - ((a[i][j] / a[i][i]) * m[j]);

m[i] = n[i];

cout << "x" << i + 1 << "=" << n[i] << " "; \\aqui estamos haciendo el proceso de conteo mediante
los ciclos anteriores donde estamos diciendo si "x" es mayor a "i+1" entonces este seia el valor del
interpolado\\

cout << "\n";

q--;

system("pause");

return 0;

}
LAGRANCE

#include <iostream>

#include <stdio.h>

#include <iomanip>

using namespace std;

int main()

int i, j, n;

float x[101], y[101], valor_de_x, y_interpolada = 0;

float numerador_producto, denominador_producto;

cout << "METODO DE INTERPOLACION DE LAGRAGE" << endl;

cout << "INDIQUE NUMERO DE VALORES DE (X,Y)" << endl;

cin >> n;

cout << "Escribe los valores (x,y) por separado" << endl;

for (i = 1; i <= n; i++)

cout << "(x,y)" << endl;

cout << "valor de x" << " = ";

cin >> x[i];

cout << "valor de y" << " = ";

cin >> y[i];

cout << "_________________________________________________" << endl;

do

cout << "INGRESE EL VALOR A EVALUAR DE X" << endl;

cin >> valor_de_x;


} while (valor_de_x < x[1] || valor_de_x > x[n]);\\ estamos condicionando los valores de "x"
siempre y cuando sea mayor o menor\\

for (i = 1; i <= n;i++)

numerador_producto = 1;\\ empezamos en 1 y por cada ciclo se ira incrementando por medio del
"for"\\

denominador_producto = 1;

for (j = 1;j <= n;j++)

if (i != j)

numerador_producto = numerador_producto*(valor_de_x -

x[j]);

denominador_producto = denominador_producto*(x[i] -

x[j]);

y_interpolada = y_interpolada + (numerador_producto /

denominador_producto)*y[i];

cout << "POLINOMIO DE LAGRANGE"<< endl;

cout << y_interpolada << "=" << y_interpolada << "+" << "(" <<

numerador_producto << "/" << denominador_producto << ") * " << y[i] << endl;

std::cout << std::fixed << std::setprecision(6) << "EL VALOR DE INTERPOLADO

ES" << " = " << y_interpolada << endl;

system("pause");

return 0;

También podría gustarte