Assalamualaikum wr..wb..
selamat malam sobat...semoga malam ini sobat-sobat dalam keadaan sehat walafiat.. dan selalu dalam lindungan yang maha kuasa..Amin..,kali ini saya akan berbagi bagaimana cara membuat program metode bolzano dengan C++,,metode ini termasuk dalam mata pelajaran metode numerik... dan bolzano ini adalah bagiannya..dari itu saya akan berbagi cara membuat programnya dengan C++ lansung saja ke koding perogramnya :::: ::
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
main()
{
FILE *stream;
int i;
double fx0, fx1, fx2, fx3, x0, x00, x1, x2, x3;
char lagi;
do
{
clrscr();
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;
}
Semoga bermanfaat untuk sobat-sobat..
http://balaeinformasi.blogspot.co.id/
ReplyDelete