Pages

Selasa, 11 Mei 2010

PROGRAM BOLZANO DALAM C++
Ini contoh program untuk menyelesaikan persamaan non linear dengan menggunakan bahasa C++. Moga bisa membantu kita yang butuh banget program ini........

/* Nama Program : bolzano.cpp */
#include
#include
#include
#include
#include
int main()
{
FILE *stream;
int i;
double fx0, fx1, fx2, fx3, x0, x00, x1, x2, x3;
char lagi;
do
{
stream = fopen("bolzano.txt", "w+");
cout << "Metode Bolzano\n";
cout << "==============\n\n";
//Persamaan utama
cout << "f(x) = x^3 - 9*x +1 = 0\n\n";
cout << "\nBerapa Nilai batas bawah (x0) ? ";
cin >> x0;
x00 = x0;
do
{
cout << "\nBerapa Nilai batas atas (x1) ? ";
cin >> x1;
fx0 = pow(x0,3) - 9*x0 + 1;
fx1 = pow(x1,3) - 9*x1 + 1;
}while(fx0*fx1 >= 0.0);
printf("\n\t-----------------------------------------------------------\n");
printf("\tIterasi ke-\tx(i)\t\tfx(i)\t\tinterval x\n");
printf("\t------------------------------------------------------\n\n");
fprintf(stream, "\n\t----------------------------------------------------\n");
fprintf(stream, "\tIterasi ke-\tx(i)\t\tfx(i)\t\tinterval x\n");
fprintf(stream, "\t----------------------------------------------\n\n");
i = 1;
//rumus x2 = (x0+x1)/2
x2 = (x0+x1)/2;
fx2 = pow(x2,3) - 9*x2 + 1;
printf("\t %d\tx%d = %.3f\tfx(%d) = %.8f\t",i, i+1, x2, i+1, fabs(fx2));
printf("[%.3f,%.3f]\n", x0, x1);
fprintf(stream,"\t %d\t\t%.3f\t\t%.8f\t", i, x2, fx2);
fprintf(stream,"[%.3f,%.3f]\n", x0, x1);
if (fx0*fx2 < 0)
{
do
{
i++;
x3 = (x0+x2)/2;
fx3 = pow(x3,3) - 9*x3 + 1;
printf("\t %d\tx%d = %.3f\tfx(%d) = %.8f\t", i, i+1, x3, i+1,
fabs(fx3));
fprintf(stream,"\t %d\t\t%.3f\t\t%.8f\t", i, x3, fabs(fx3));
if (fx2*fx3 < 0)
{
printf("[%.3f,%.3f]\n", x0, x3);
fprintf(stream,"[%.3f,%.3f]\n", x0, x3);
x0 = x3;
}
else
{
printf("[%.3f,%.3f]\n", x2, x3);
fprintf(stream,"[%.3f,%.3f]\n", x2, x3);
x2 = x3;
}
} while(fabs(fx3) > 0.00000001);
}
else
{
printf("\nAkar-akar Real terletak antara x = %.3f\tx = %.3f", x0, x2);
getch();
}
printf("\n\t----------------------------------------------------------------\n\n");
fprintf(stream,"\n\t--------------------------------------------------------\n\n");
printf("\nBatas atas x0 = %.3f dan batas bawah x1 = %.3f\n", x00, x1);
printf("\nAkar Real adalah x = %.3f\n", x3);
printf("\nDengan Iterasi sebanyak %d kali", i);
fprintf(stream,"\nBatas atas x0 = %.3f dan batas bawah x1 = %.3f\n", x00,
x1);
fprintf(stream,"\nAkar Real adalah x = %.3f", x3);
fprintf(stream,"\nDengan Iterasi sebanyak %d kali", i);
fclose(stream);
cout << "\n\nCoba lagi (y/t) ? ";
cin >> lagi;
}while(lagi != 't');
return 0;}

Selamat mencoba,,,,,,,,,,,,,
catatan penting: Khusus Buat Infinity 08 MATHEMATIC SCIENCE UIN

Tidak ada komentar:

Posting Komentar