看板 C_and_CPP 關於我們 聯絡資訊
Dev-C++ ------------二分法------------------------- float term; float a=-1 ,b=0 ,t=1/100000 ,N; float p , q ,temp ,FA ,FP; cin >> N; term = (230*a*a*a*a) + (18*a*a*a) + (9*a*a) - (211*a) -9; FA=term; for(int i=1; i <= N ; i++){ p = a+((b-a)/2); FP=(230*p*p*p*p) + (18*p*p*p) + (9*p*p) - (211*p) -9; cout<<"term :"<<FA<<endl; cout<<"temp :"<<FP<<endl; cout<<"temp*term :"<<FP*FA<<endl; if( FP==0||((b-a)/2)<t){ cout<<"p = "<<p<<endl; cout<<"FP = "<<FP<<endl; break; } if((FP*FA)>0){ a=p; FA=FP; } if((FP*FA)<0){ b=p; } } ------------牛頓法------------------------- float t=1/1000000,p0=0,p=-1,N0,sign; cin>>N0; for(int i=1; i<=N0; i++){ p=p0-((230*p0*p0*p0*p0)+(18*p0*p0*p0)+(9*p0*p0)-(211*p0)-9)/((920*p0*p0*p0)+(54*p0*p0)-211); sign=(p-p0); if(sign<=0){ sign=(-1)*sign; } if(sign<=t){ cout<<p<<endl; } p0=p; } -- 兩個都是要跑出" 230x^4 + 18x^3 + 9x^2 - 211x - 9 = 0 " 之x的根...範圍是〔0,1〕 ...程式都能跑!但跑出來都是錯的ˊˋ... 有請偉大的ptt之神解救小弟,指點迷津T^T... 感激不盡~謝謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.221.26
QQ29:加點解釋吧 不然鎖文定了 10/28 00:26
VictorTom:float t = 1/100000; 結果不是0.000001, 而是0.... 10/28 00:36
VictorTom:因為兩個整數做除法只會除出整數....:) 10/28 00:36
VictorTom:總覺得這點最近也是出現很多次XD 10/28 00:37
nowar100:Q大這麼講,豈不是讓我很難做人 XD 10/28 00:46
nowar100:我是覺得這篇還好啦,有努力過,也大概看得出來在問什麼 10/28 00:48
dendrobium:其實我覺得應該強制規定要用問題規格 10/28 00:48
nowar100:我也希望大家能照規格發文,但是又怕太過強硬,大家一時 10/28 00:53
nowar100:接受不能,我再觀察看看吧,不然我是感覺格式統一比較好 10/28 00:53
tiyun:會把人嚇跑@@ 10/28 00:56
QQ29:sorry= = 我只是覺得把整個code貼上沒解釋 真的很難去想幫忙 10/28 00:56
nowar100:XD 不過在人家文章下這樣推文好像不太尊重,原po抱歉 10/28 00:58
nowar100:以後有任何意見都歡迎站內信或推置底文喔 :D 10/28 00:59