/* *************************************** */
/* File : pivoting.cpp */
/* Author : Group 9 Numerical Method Class */
/* Date : 1 oktober 2008 */
/* Deskripsi : Program Eliminasi Gauss yang diperbaiki (dengan tataancang Pivoting)*/
/* *************************************** */
#include
#include
#include
float a[11][11];
float x[4];
main()
{
int i, j, n, m, c, b, p, q, L, k;
float pivot, pivot1, pivot2, total, suku, temp;
cout<
cout<
///////////////////////////////////////////////////////////////
cout<
{
for(j=1; j<=m; j++)
{
cout<<" "; cin>>a[i][j];
}
cout<
/////////////////////////////////////////////////////////////
for(i=1;i<=(n-1); i++)
{
j=i;
pivot1 = a[i][j]; c=i; //simpan state pivot1 di c;
if(pivot1 < 0){pivot1 = pivot1 * -1;} // cari harga mutlak pivot1
for(b=(i+1); b<=n; b++)
{
pivot2= a[b][j];
if(pivot2 < 0){ pivot2 = pivot2 * -1;} //cari harga mutlak pivot2
if(pivot2 > pivot1){ pivot1 = pivot2; c=b;} //simpan state pivot2 di c;
}
if(c==i) goto lompat;
for(j=i; j<=m; j++)
{
temp = a[i][j];
a[i][j] = a[c][j];
a[c][j] = temp;
}
lompat:
j=i;
pivot = a[i][j];
for(k=i; k<=(n-1); k++)
{
temp = a[k+1][j];
for(L=i; L<=m; L++)
{
a[k+1][L] = a[k+1][L] - temp /pivot * a[i][L];
}
}
}
////// display
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
{
cout<
cout<
///////////// penyulihan mundur
if(a[n][n]==0) {cout<
}
x[n] = a[n][m] / a[n][m-1];
for( p=(n-1); p>=1; p--)
{
total=0;
for( q=(m-1); q > p; q--)
{
suku = a[p][q] * x[q];
total = total + suku; //total suku ruas kiri
}
x[p] = ( a[p][m] - total ) / a[p][p];
}
for(i=1; i<=n; i++){ cout<
getch();
}
Thursday 19 March 2009
Code Program 4.3 (Pivoting)
Posted by
Numerical Method Project
20:46