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

// 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

时间: 2024-11-11 21:04:28

c++ sin的泰勒展开式实现的相关文章

等价无穷小、常用泰勒展开式

等价无穷小 可直接等价替换的类型: 变上限积分函数(积分变限函数)也可以用等价无穷小进行替换. 泰勒展开式的重要性体现在以下五个方面: 1.幂级数的求导和积分可以逐项进行,因此求和函数相对比较容易. 2.一个解析函数可e799bee5baa631333431343633被延伸为一个定义在复平面上的一个开片上的解析函数,并使得复分析这种手法可行. 3.泰勒级数可以用来近似计算函数的值,并估计误差. 4.证明不等式. 5.求待定式的极限. 常用泰勒展开公式如下: 1.e^x = 1+x+x^2/2!

泰勒展开式

数学中,泰勒公式是一个用函数在某点的信息描述其附近取值的公式.如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值.泰勒公式还给出了这个多项式和实际的函数值之间的偏差. 泰勒公式是将一个在x=x0处具有n阶导数的函数f(x)利用关于(x-x0)的n次多项式来逼近函数的方法. 若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x

使用泰勒展开式求sin(x)的近似值-C

具体定义参见百度 1 #include<stdio.h> 2 #include<math.h> 3 4 int main(void) 5 { 6 double x=3.455; 7 8 int index=1; 9 10 double s=x; 11 double n=x; 12 13 do 14 { 15 index+=2; 16 n=n * (-x*x)/((index)*(index-1)); 17 s+=n; 18 }while(fabs(n)>=1e-8); 19

实现 Math.Asin 迈克劳林(泰勒)展开式,结果比Math.Asin 慢一倍

项目中需要快速求解Asin(x) 的近似值,原以为用泰勒展开式会快一些,结果比原生的慢一倍. Math.ASin        Time Elapsed:   9ms        Gen 0:          0        Gen 1:          0        Gen 2:          0Maclaurin.ASin        Time Elapsed:   17ms        Gen 0:          4        Gen 1:          0

(一)泰勒级数展开

1 #coding=utf-8 2 from sympy import * 3 import math 4 5 #定义变量x 6 x=Symbol("x") 7 #定义函数f 8 f = -0.1*x**4-0.15*x**3-0.5*x**2-0.25*x+1.2 9 10 #求出一到四阶导为 11 d1 = diff(f,x,1) 12 d2 = diff(f,x,2) 13 d3 = diff(f,x,3) 14 d4 = diff(f,x,4) 15 print d1,d2,d

Mathematica

Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一.Mathematica的发布标志着现代科技计算的开始.Mathematica是世界上通用计算系统中最强大的系统.自从1988发布以来,它已经对如何在科技和其它领域运用计算机产生了深刻的影响. Mathematica和MATLAB.Maple并称为三大数学软件. 软件名称 Mathematica 开

Python计算&amp;绘图——曲线拟合问题(转)

题目来自老师的课后作业,如下所示.很多地方应该可以直接调用函数,但是初学Python,对里面的函数还不是很了解,顺便带着学习的态度,尽量自己动手code. 测试版代码,里面带有很多注释和测试代码: [python] view plain copy # -*- coding: cp936 -*- import math import random import matplotlib.pyplot as plt import numpy as np ''''' 在x=[0,1]上均匀采样10个点组成

高速公路坐标高程计算软件3.3版本发布

---恢复内容开始--- 高速公路坐标高程计算软件说明 高速公路坐标高程计算软件是在多年的施工放样工作中总结出来的一个很有效的程序.它是公路.铁路施工放样的好助手,可以帮你完成以前你用很大的精力和时间完成的计算.它能在工作中给予很大的方便,使你能从繁琐的计算工作中解脱出来,你只要按要求将已知的几个数据输入即可,并大大的提高了计算精确性和准确性.操作简便.实用,适合采用坐标法放样,如具有全站仪和测距仪的测量放线工作,快速准确定位. 高速公路坐标高程计算软件可以帮你完成直线.圆曲线.缓和曲线(完全缓

UVA - 11186 Circum Triangle (几何)

题意:有N个点,分布于一个圆心在原点的圆的边缘上,问所形成的所有三角形面积之和. 分析: 1.sin的内部实现是泰勒展开式,复杂度较高,所以需预处理. 2.求出每两点的距离以及该边所在弧所对应的圆周角.一条弧所对圆周角等于它所对圆心角的一半. 3.S = 1/2*absinC求三角形面积即可. #include<cstdio> #include<cstring> #include<cstdlib> #include<cctype> #include<c