ではない私は、C++プログラミングに比較的新しいです、私は、ニュートンラプソン法をコーディングするための割り当てを持っているしかし、私はエラーのエラーを持っている:エラー:呼び出されたオブジェクトタイプ「ダブル」関数または関数ポインタ
called object type 'double' is not a function or function pointer
このエラーは、自分のコードをコンパイルしようとしているときに表示されます。私はポインターを割り当てるためにいくつかの基本的な変更を試みましたが、間違った方法でそれをやったことがあります。私のコードは以下に表示されています。
#include <iostream>
#include <math.h>
using namespace std;
double f(double x); //this is f(x)
double f(double x) {
double eq1 = exp(x) + pow(x,3) + 5;
return eq1;
}
double f1(double x); //this is the first derivative f'(x)
double f1(double x) {
double eq2 = exp(x) + 3*pow(x,2);
return eq2;
}
int main() {
double x, xn, f, f1, eps;
cout << "Select first root :" << '\n'; //Here we select our first guess
cin >> xn;
cout << "Select Epsilon accuracy :" << '\n';
cin >> epsi;
f = f(x);
f1 = f1(x);
cout << "x_n" << " " << "x_(n+1)" << " " << "|x_(n+1) - x_1|" << '\n';
do {
x = xn; //This is the first iteneration step where x takes the value of the last itenarated (known) root xn
f = f(x);
f1 = f1(x);
xn = x - (f/f1); //this the formula that sets the itenaration going
cout << x << " " << xn << " " << fabs(xn - x) << '\n';
}
while(fabs(xn - x) < epsi); //If |x_(n+1) - x_n| is smaller than the desired accurcay than the itenaration continues
cout << "The root of the equation is " << xn << '\n';
return 0;
}
あなたは、Fと呼ばれる機能とf1とダブルスFと呼ばれ、F1キーを使用しようとしているあなたに
これを[MCVE]に減らすことができますか?そのエラーを再現してください。 –
どの行にエラーがありますか?あなたが話しているポインタはどこですか?そしてbtw iteration "iteration"ではなく "iteration"です。 – user463035818
定義される前に関数を宣言する必要はありません。 – user463035818