首页 > 编程语言 > 详细

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

时间:2015-02-21 06:32:30      阅读:510      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!