
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float f(float x);
float f(float x)
{
return (float)(x-sin(x)/cos(x));
}
void main()
{
float x1,x2,eps,f1,f2,xm,ff;
int i;
printf("Bisection method\n\n");
for(;scanf("%g%g%g",&x1,&x2,&eps)!=EOF;){
f1= f(x1); f2= f(x2);
if(f1>0){
xm= x1; x1= x2; x2=xm;
ff= f1; f1= f2; f2=ff;
}
printf("\nFinding a root between x1=%g and x2=%g\n", x1, x2);
printf("f(x1)=%g f(x2)=%g eps=%g\n", f1, f2, eps);
printf("\tx1\t\tx2\t\txm\t\tf(xm)\n");
if(f2<0){
printf("????\n");
continue;
}
i= 0;
for(;fabs(x1-x2)>=eps;){
xm=(x1+x2)*((float)rand()/(float)RAND_MAX)
ff= f(xm);
i++;
printf("%2d %15.6e %15.6e %15.6e %15.6e\n",i, x1, x2, xm, ff);
if(ff<0)
x1= xm;
else
x2= xm;
}
printf("A root found between %g and %g\n", x1, x2);
}
}
f(x)=x-tanx=0の解のうち3つを表示させるためにランダムサーチのプログラムを上記のように書いたつもりなんですがうまく作動しません。どこをどう直したらいいのでしょうか、教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
二点の座標から距離や角度を求...
-
VBAで入力数値について
-
VBA public変数はどのようなこ...
-
String型の値にスラッシュをつ...
-
visual basic初心者です。 visu...
-
演奏記号の・・・・
-
ユーザーフォームへのデータ入...
-
他のフォームから別のフォーム...
-
texで図と表を並べたい
-
【VB.NET】テキストボックスに...
-
VB.NETでのイベントの途中終了
-
テキストボックスかラベル上の...
-
タイムアウトする仕組みを作りたい
-
【VB6.0】 あるフォームから他...
-
チェックボックスを操作できな...
-
ボールが壁に当たって跳ね返る...
-
GetNextWindowがDLLファイルUse...
-
【AccessVBA】イベント処理のク...
-
レコードセットにnullの場合
-
プロシージャを呼び出したプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二点の座標から距離や角度を求...
-
C#を勉強していて、指定したフ...
-
エクセルのVBAでの7×7の魔方陣...
-
IsNumeric 配列条件
-
VB.NET)コンボボックスの連動に...
-
VC++ (byte)(col & 0xFF) の意味
-
2次元配列を返す関数について
-
ドラゴン曲線を再帰で書く
-
エクセル・VBAでテキストボック...
-
このプログラムがうまく作動し...
-
教えてください。マクロでの罫...
-
エクセル ユーザーフォーム ...
-
カラーの16進表記の足し算
-
検索結果の指定列をリストボッ...
-
C#のaxWebBrowsrでエンコードを...
-
VBAにおけるニュートン法
-
線の太さ
-
テキストファイルの読み込みと...
-
for文の質問です。
-
エクセルVBAでテキストボッ...
おすすめ情報