2

学校に問題がありますが、実際に何を求めているのかわかりません。あなたの誰かがそれが本当に何を求めているのか考えていますか?コードは必要ありません。理解する必要があります。

これが問題です。割線法を使用して問題を解決するコンピュータープログラムを作成します。f(x)=(1 + x)cos(sin(x)3)-1.4 = 0 x=2.0の初期推定から開始します。 x = 2.1の場合、| f(x)|となるようなxの近似値を取得します。<0.0000001。

これは私が理解していることからの私のコードですが、私は質問を正しく理解していないと思います。

#include <iostream>
#include <cmath>

double secant(double x);

using namespace std;

int main()
{
    double x = 2.0;
    double r = 0.0;
    int counter = 0;

    while( r < 0 && counter <= 40)
    {
        r =secant(x);
        cout << "x: " << x << ", f(x): " << r << endl;
        counter++;
        x += 0.1;
    }



    return 0;
}

double secant(double x)
{
    double r;
    r = (1+x) * cos(pow(sin(x), 3.0)) - 1.4;
    return r;
}
4

1 に答える 1

5

割線法を使用することになっています:http://en.wikipedia.org/wiki/Secant_method

記事に記載されている方法に従ってください。これは、Netwonの方法によく似た反復法です。x(n)を指定してx(n + 1)を評価する関数を作成し、許容誤差が指定より少なくなるまで反復する必要があります。

割線法が何であるかを知っている限り、これのコーディング側はかなり簡単であることがわかるかもしれません。また、そのページにはコード例があります。それはかなり役立つはずです。:)

于 2010-09-24T04:27:48.510 に答える