使用泰勒展开式求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
20     printf("%10.10f\n",s);
21     return 0;
22 }

fabs是求绝对值的函数,在math头文件中定义,此时我们要求精度在最后一项小于1e-7时。

时间: 2024-11-04 03:09:50

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

泰勒展开式

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

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

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

c计算sin()函数的近似值,不使用函数库

首先是自己写的代码如下: // sinx.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "math.h" //该函数计算阶乘 double ProductFunc(double x) { double product =x; while (1!=x) { product *= (--x); } return product; } double myTestFunc(double inputx) { //分子

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 s

《C语言及程序设计》实践参考——sin泰勒展式中的错误

返回:贺老师课程教学链接  项目要求 [项目1-sin泰勒展式中的错误] 下面是sin函数的泰勒展式:(注:x取弧度值,而非角度值)编写了double mysin(double x)用于求sin值,却"死"在了123°上(122°度的结果已经出来了).剧透一下,循环没有问题(当然问题会表现在循环中).试着用调试工具找出问题出现在哪里,然后给出解决问题的方案. #include<stdio.h> #define pi 3.1415926 double mysin(double

实现 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

第十一周项目7 泰勒 求解

运行及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2014年11月10日 *版 本 号:v1.0 * *问题描述:求sin(π/2)和sin(56° )的值精度要求达到小数点后6位: *输入描述:无 *程序输出:sin(π/2)和sin(56° )的值 */ #include <iostream> using namespace std; double mys

在XSLT样式表中使用莱布尼兹级数计算π的近似值

初学XSLT的时候一直纠结它对循环的处理,一开始使用for-each进行简单的遍历操作,但是对更精确的循环控制总感觉力不从心.后来我在<XSLT从入门到精通>这本书中看到了一个概念"Side-Effect-Free"-基本意思就是用户不能更新变量值,因此用户对于控制函数环境只有非常有限的能力-才知道XSLT中的variable的值是无法进行二次修改的.因此,类似高级语言(如C++)中如"for(int i = 0; i < n; i++) { }"