[問題] 請益二分法與牛頓法...
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
→
10/28 00:26, , 1F
10/28 00:26, 1F
推
10/28 00:36, , 2F
10/28 00:36, 2F
→
10/28 00:36, , 3F
10/28 00:36, 3F
→
10/28 00:37, , 4F
10/28 00:37, 4F
→
10/28 00:46, , 5F
10/28 00:46, 5F
→
10/28 00:48, , 6F
10/28 00:48, 6F
推
10/28 00:48, , 7F
10/28 00:48, 7F
→
10/28 00:53, , 8F
10/28 00:53, 8F
→
10/28 00:53, , 9F
10/28 00:53, 9F
→
10/28 00:56, , 10F
10/28 00:56, 10F
推
10/28 00:56, , 11F
10/28 00:56, 11F
→
10/28 00:58, , 12F
10/28 00:58, 12F
→
10/28 00:59, , 13F
10/28 00:59, 13F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章