码迷,mamicode.com
首页 > 编程语言 > 详细

c++ sin的泰勒展开式实现

时间:2015-02-21 06:32:54      阅读:470      评论:0      收藏:0      [点我收藏+]

标签:

// sinx.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int factorial(int num){
    int a=1;
    for(int i=1;i<num;i++){
        a=a*(i+1);
    }
    return a;
}

double ssin(double t){
    bool flag = true;//T减法,F加法
    t=3.14159265/(180/t);//换算成弧度
    double result = t;
    double a=0,b=0;
    double oddnum = 0;
    for(int i=0;i<12;i++){//精度
        oddnum = 2*(i+1)+1;
        a=pow(t,oddnum);
        b= (double)factorial(oddnum);
        if(flag){
            result = result - (a/b);
            flag = false;
        }
        else{
            result = result + (a/b);
            flag = true;
        }
    }
    return result;
}
int _tmain(int argc, _TCHAR* argv[]){
    //sin(20°) = 0.34202014332566873304409961468226 
    double a = ssin(20);//角度
    cout<<a;
    system("pause");
}

vs2012

c++ sin的泰勒展开式实现

标签:

原文地址:http://my.oschina.net/reter/blog/379409

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!