[問題] 請幫看一下我寫得程式哪裡錯了
我用Dev-C++寫數值分析的作業不清楚哪邊寫錯了請版友指正
內容是要用Halley's method 一直迭代求tanπx-6 = 0的數值解 過程列表
2f(x_n)f'(x_n)
Halley's method : x_n+1 = x_n - ----------------------------
2[f'(x_n)]^2-f(x_n)f"(x_n)
初始值0 ,誤差小於10^(-6)時停止
---------------------------------
#include<iostream>
#include<cmath>
using namespace std;
double func(double x);
int main()
{
double a = 0.0,PI = 3.14159 ,tol = 1e-6;
double fa;double dfa;double dfb;double ddfa;
cout<<"===============Halley's Method==============="<<endl;
cout<<"Step\t\tP\t\tError"<<endl;
cout<<"---------------------------------------------"<<endl;
for(int i=0;i++){
fa=func(a);
dfa=(func(a+0.000001)-func(a))/0.000001;
dfb=(func(a)-func(a-0.000001))/0.000001;
ddfa=(dfa-dfb)/0.000002;
a=a-2*fa*dfa/(2*dfa*dfa-fa*ddfa);
cout<<i+1<<"\t\t"<<a<<"\t\t"<<fabs(2*fa*dfa/(2*dfa*dfa-fa*ddfa))<<endl;
if(fabs(2*fa*dfa/(2*dfa*dfa-fa*ddfa))<tol){
system("pause");
return 0;
}
}
system("pause");
}
double func(double x){
double y;
y=tan(PI*x-6);
return y;
}
依v大發現我的小錯修改了一下
compile error message
現在剩下有
"for(int i=0;i++)" expected `;' before ')' token
`PI' undeclared (first use this function)
-------------------------------------
因為程設以前就學的不好 然後現在幾乎還給老師了...orz
所以我是google到一個牛頓法的程式作修改的
原程式
-------------------------------------------
#include <iostream>
#include <math.h>
using namespace std;
double func(double x);
//a=initial guess,n=maximum allowable iterations,tol=tolerance
double a=8;
double n=20;
double tol=1e-5;
int main(){
double fa;double dfa;
cout<<"===============Newton's Method==============="<<endl;
cout<<"Step\t\tP\t\tError"<<endl;
cout<<"---------------------------------------------"<<endl;
for(int i=0;i<n;i++){
fa=func(a);
dfa=(func(a+0.00001)-func(a))/0.00001;
a=a-fa/dfa;
cout<<i+1<<"\t\t"<<a<<"\t\t"<<fabs(fa/dfa)<<endl;
if(fabs(fa/dfa)<tol){
cout<<"Converge!!!"<<endl;
system("pause");
return 0;
}
}
cout<<"DO NOT Converge!!!!"<<endl;
cout<<"Please try more steps of iteration or change another method!!!"<<endl;
system("pause");
}
double func(double x){
double y;
y=5*x*x-6*x-10;
return y;
}
-------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.114.244.170
推
11/25 21:44, , 1F
11/25 21:44, 1F
→
11/25 21:44, , 2F
11/25 21:44, 2F
→
11/25 21:46, , 3F
11/25 21:46, 3F
→
11/25 21:47, , 4F
11/25 21:47, 4F
推
11/25 21:54, , 5F
11/25 21:54, 5F
→
11/25 21:54, , 6F
11/25 21:54, 6F
→
11/25 21:54, , 7F
11/25 21:54, 7F
→
11/25 21:55, , 8F
11/25 21:55, 8F
→
11/25 21:55, , 9F
11/25 21:55, 9F
→
11/25 21:56, , 10F
11/25 21:56, 10F
→
11/25 21:56, , 11F
11/25 21:56, 11F
→
11/25 21:58, , 12F
11/25 21:58, 12F
→
11/25 21:58, , 13F
11/25 21:58, 13F
→
11/25 21:59, , 14F
11/25 21:59, 14F
※ 編輯: WaterPisces 來自: 59.114.244.170 (11/25 22:17)
→
11/25 22:32, , 15F
11/25 22:32, 15F
推
11/25 22:59, , 16F
11/25 22:59, 16F
→
11/25 23:00, , 17F
11/25 23:00, 17F
→
11/25 23:00, , 18F
11/25 23:00, 18F
→
11/25 23:01, , 19F
11/25 23:01, 19F
→
11/25 23:01, , 20F
11/25 23:01, 20F
→
11/25 23:40, , 21F
11/25 23:40, 21F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章