| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1161 人关注过本帖
标题:帮帮忙啊 用C++计算泰勒公式sinx为什么偏差那么大
只看楼主 加入收藏
visualcp
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-6-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
帮帮忙啊 用C++计算泰勒公式sinx为什么偏差那么大
  


void comput(int in)//计算n!
{
int innumber=1;
for( int i=1;i<(in+1);i++)
innumber=i*innumber;
return innumber;
}
main()
{
// TODO: Add your control notification handler code here
cin>>m_in;
m_out=0;
for(int i=1;1.0000000/comput(2*i-1)>0;i++)
{
m_out=m_out+pow(-1,(i-1))*1.000000*pow(m_in,(2*i-1))/comput(2*i-1);
}
cout<<m_out;
}   
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 泰勒 sinx 偏差 公式 
2010-06-16 13:44
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
你的算法转换不正确!另外comput应该是int类型
程序代码:
main()
{
    float m_in,m_out;
    cin>>m_in;//度数
    m_out=m_in*3.1415926/180; //弧度
    int flag=1;
    for (int i=2;1.0/comput(2*i-1)>0.0000001;i++)
    {
        flag=flag*(-1);
        m_out=m_out+1.0*flag*pow(m_in*3.1415926/180,(2*i-1))/comput(2*i-1);
    }
    cout<<m_out;
}


[ 本帖最后由 cnfarer 于 2010-6-16 15:49 编辑 ]

★★★★★为人民服务★★★★★
2010-06-16 15:47
lvan100
Rank: 2
等 级:论坛游民
帖 子:6
专家分:40
注 册:2010-6-16
收藏
得分:10 
程序代码:
#include <stdio.h>
double TylorSin(const double x,const int n)
{
    double sum=0;
    double fenzi=1,fenmu=1;
    for(int i=2;i<n;i++)
    {
        fenzi*=x*x*1.0;
        fenmu*=(2*(i-1))*(2*i-1)*1.0;
        sum+=(-1)*fenzi/fenmu;
    }
    return (sum+1.0)*x;
}
int main()
{
    printf("%f",TylorSin(3.1415926/6,1000));
    return 0;
}
我是这么设计的,你看看。我觉得没错了。
2010-06-16 22:24
快速回复:帮帮忙啊 用C++计算泰勒公式sinx为什么偏差那么大
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039272 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved