practica7_ejercicios1_2y3.cpp
来自「Topics Practices: Programming and Nume」· C++ 代码 · 共 81 行
CPP
81 行
/*PACTICA 7 EJERCICIOS 1,2Y3
Escribir una funci髇 que tome como par醡etro una matriz cuadrada y que triangule
la matriz seg鷑 el m閠odo de Gauss-Jordan sin pivoteo.
a) Modificar la funci髇 para que detecte la existencia de pivotes nulos, y que
interrumpa el proceso mostrando un mensaje de error en ese caso. Para este
punto, consideramos que un pivote aii es nulo si | aii | < 10-8.
b) Modificar la funci髇 para que tome como par醡etro una matriz extendida, que
representa un sistema de ecuaciones lineales.
2) Escribir una funci髇 que tome como par醡etro una matriz extendida (que
representa un sistema de ecuaciones) triangular superior y que calcule la
soluci髇 del sistema de ecuaciones.*/
#include<stdio.h>
#include<conio.h>
main()
{
int i,j,k, suma,n,h,t;
float m;
printf("Ingrese el tama駉 de la matriz cuadrada ");
scanf("%d",&n);
float a[n][n+1];
printf("Ingrese los elementos de la matriz ampliada por fila\n ");
for(i=0;i<n;++i)
for(j=0;j<n+1;++j)
{
//printf("Ingrese el elemento a[%d][%d]\n",i+1,j+1);
scanf("%f",&a[i][j]);
}
//primero triangulamos con algoritmo de triangulacion de gauss.
//int a[n][n+1];//matriz aimpliada n+1 significa que le agrego una columna mas no?
for(j=0;j<=n-2;++j)
//if(a[j][j]==0)//pivotea..hay que intercambiar filas.
//pivotear;
for(i=j+1;i<n;++i)
{
m = -a[i][j]/a[j][j];
for(k=j;k<=n;++k)
a[i][k] = a[i][k]+ m*a[j][k];
}
for(i=0;i<n;++i)
{
for(j=0;j<n+1;++j)
printf("%.2f ", a[i][j]);
printf("\n");
}
//solucion del sistema
float x[n];
for(i=n-1;i>=0;i=i-1)
{ suma=0;
for(j=i+1;j<n;++j)
suma=suma+a[i][j]*x[j];
x[i] = (a[i][n] - suma) / a[i][i];
}
for(i=0;i<n;++i)
printf("%.2f ",x[i]);
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?