C/C++の宿題を片付けます 64代目
■ このスレッドは過去ログ倉庫に格納されています
0218デフォルトの名無しさん
2006/05/06(土) 18:26:52#include <stdio.h>
#include <math.h>
#define EPS .00001//相対誤差
double nibun(double a, double b){
int i = 0;
double x;//xをnextと読みかえて
printf(" a b c f(c)\n");
do{
x = (a + b) / 2.0;
if((func_y(x) * func_y(a)) < 0)b = x;
else a = x;
printf("%02d : %6.3lf %6.3lf %6.3lf %6.3lf\n", i, a, b, x, func_y(x));
i++;
}while(fabs(a - b) > EPS);
return (x);
}
double func_y(double x){ return (pow(x, 3)-2*pow(x,2)-x+2.0); }
int main(void){
double a, b, x;//a,bをx0,x1と読みかえて
printf("範囲の左の値を入力してください.\n");
scanf("%lg",&a);
printf("範囲の右の値を入力してください.\n");
scanf("%lg",&b);
printf("x^3 - 2x^2 - x + 2 = 0の二分法による数値計算\n");
printf("初期値a=%6.3lf\n",a);
printf("初期値b=%6.3lf\n",b);
x = nibun(a, b);
printf("近似解x=%6.3lf\n",x);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています