sin(x)的计算

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/think_self/article/details/53572283

泰勒公式

不使用一般的软件封装的函数去实现sin(x )、cos(x)等,使用泰勒公式去实现这个问题的编程
以下是我去收集的一些泰勒公式。

sin(x)=xx33!+x55!x77!

sin(x)=1x22!+x44!x66!

ex=1+x1!+x22!+x33!+

ln(1+x)=1x22!+x33!x44

arcsinx=x+x33!+x55!+

11x=1+x+x2+x3+

\dfrac{a}b是分数形式1x,^是指数x2,a_1是下标a1,\qquad和\quad是空格11···11···1 2.+‘空格’也是一个空。

然后通过泰勒公式去实现sinx(x),con(x)的算法。

sin(x)和cos(x)代码如下:

#include<iostream>//sin(x)使用泰勒公式
using namespace std;
#define pi 3.1415925
#include<math.h>
int main()
{
    double a=1, b=1, c=0, x,n,s;
    cin >> x;
    x = (x*pi) / 180;
    s = x;
    for (n = 3;; n += 2)
    {
        a = a*(n - 1)*n;
        b = -b;
        c = pow(x, n) / a;
        s = s + b*c;
        if (c <= pow(10, -6))
        {
            cout << "sin(x)=" << s << endl;
            cout << "" << endl;
            break;
        }
    }

    cout << "原先"<<sin(x) << endl;
    return 0;
}

/*#include<iostream>
#include<math.h>
#define pi 3.1415925
using namespace std;
int main()
{
    double a = 1, b = 1, c = 0, x, n, s;
    cin >> x;
    x = (x*pi) / 180;
    s = 1;
    for (n = 2;; n += 2)
    {
        a = a*(n - 1)*n;
        b = -b;
        c = pow(x, n) / a;
        s = s + b*c;
        if (c <= pow(10, -6))
        {
            cout << "cos(x)=" << s << endl;
            break;
        }
    }

    cout << "原先" << cos(x) << endl;
    return 0;
    */
}
展开阅读全文

没有更多推荐了,返回首页