#include <math.h>
double functionOfX(double x)
{
double fx;
fx = pow(x, 3) + 4 * pow(x, 2) - 10; //write here your function
return fx;
}
int main(){
FILE *f;
int i = 2;
double P[10], Q[2];
double q, TOL = pow(10, -5);
P[0] = 1;
P[1] = 2;
if ((f = fopen("results.txt", "a+")) == NULL)
{
printf("File could not be opened\n");
}
Q[0] = functionOfX(P[0]);
Q[1] = functionOfX(P[1]);
printf("\n ### SECANT METHOD ###\n\n > FUNCTION is : x^3 + 4(x^2) - 10\n > TOLERANCE VALUE is : %lf\n > INTERVAL is : [1,2]\n > Q(0) : %lf\n > Q(1) : %lf\n", TOL, Q[0], Q[1]);
printf("\n # %d # --> %lf\n", i - 2, P[0]);
printf(" # %d # --> %lf\n", i - 1, P[1]);
fprintf(f, "\n ### SECANT METHOD ###\n\n > FUNCTION is : x^3 + 4(x^2) - 10\n > TOLERANCE VALUE is : %lf\n > INTERVAL is : [1,2]\n > Q(0) : %lf\n > Q(1) : %lf\n", TOL, Q[0], Q[1]);
fprintf(f, "\n # %d # --> %lf\n", i - 2, P[0]);
fprintf(f, " # %d # --> %lf\n", i - 1, P[1]);
while (i <= 10)
{
P[i] = P[i - 1] - (Q[1] * (P[i - 1] - P[i - 2]) / (Q[1] - Q[0]));
printf(" # %d # --> %lf\n", i, P[i]);
fprintf(f, " # %d # --> %lf\n", i, P[i]);
if (fabs(P[i] - P[i - 1]) <= TOL)
{
break;
}
Q[0] = Q[1];
Q[1] = functionOfX(P[i]);
i++;
}
printf("\n\n");
i = 2;
Q[0] = functionOfX(P[0]);
Q[1] = functionOfX(P[1]);
printf("\n ### REGULA FALSI METHOD ###\n\n > FUNCTION is : x^3 + 4(x^2) - 10\n > TOLERANCE VALUE is : %lf\n > INTERVAL is : [1,2]\n > Q(0) : %lf\n > Q(1) : %lf\n", TOL, Q[0], Q[1]);
printf("\n # %d # --> %lf\n", i - 2, P[0]);
printf(" # %d # --> %lf\n", i - 1, P[1]);
fprintf(f, "\n ### REGULA FALSI METHOD ###\n\n > FUNCTION is : x^3 + 4(x^2) - 10\n > TOLERANCE VALUE is : %lf\n > INTERVAL is : [1,2]\n > Q(0) : %lf\n > Q(1) : %lf\n", TOL, Q[0], Q[1]);
fprintf(f, "\n # %d # --> %lf\n", i - 2, P[0]);
fprintf(f, " # %d # --> %lf\n", i - 1, P[1]);
while (i <= 10)
{
P[i] = P[i - 1] - (Q[1] * (P[i - 1] - P[i - 2]) / (Q[1] - Q[0]));
printf(" # %d # --> %lf\n", i, P[i]);
fprintf(f, " # %d # --> %lf\n", i, P[i]);
if (fabs(P[i] - P[i - 1]) <= TOL)
{
break;
}
q = functionOfX(P[i]);
if (q * Q[1] < 0)
{
Q[0] = Q[1];
}
Q[1] = q;
i++;
}
printf("\n");
system("pause");
fclose(f);
return 0;
}
results.txt :
### SECANT METHOD ###
> FUNCTION is : x^3 + 4(x^2) - 10
> TOLERANCE VALUE is : 0.000010
> INTERVAL is : [1,2]
> Q(0) : -5.000000
> Q(1) : 14.000000
# 0 # --> 1.000000
# 1 # --> 2.000000
# 2 # --> 1.263158
# 3 # --> 1.338828
# 4 # --> 1.366616
# 5 # --> 1.365212
# 6 # --> 1.365230
# 7 # --> 1.365230
### REGULA FALSI METHOD ###
> FUNCTION is : x^3 + 4(x^2) - 10
> TOLERANCE VALUE is : 0.000010
> INTERVAL is : [1,2]
> Q(0) : -5.000000
> Q(1) : 14.000000
# 0 # --> 1.000000
# 1 # --> 2.000000
# 2 # --> 1.263158
# 3 # --> 1.338828
# 4 # --> 1.336571
# 5 # --> 1.336644
# 6 # --> 1.336642

Hiç yorum yok:
Yorum Gönder