| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 786 人关注过本帖
标题:迭代法求根,但是结果是0.739085,明显不对
只看楼主 加入收藏
万仁全
Rank: 1
等 级:新手上路
帖 子:23
专家分:1
注 册:2011-8-31
结帖率:100%
收藏
 问题点数:0 回复次数:5 
迭代法求根,但是结果是0.739085,明显不对
/*********已知f(x) = cos(x) - x。 x的初值为3.14159/4,用牛顿法求解方程f(x)=0的近似值**/
/*********要求精确到10E-6************/
#include"stdio.h"
#include"math.h"
double f1(double x);//要求解的函数
double f2(double x);//要求解的函数的一阶导数函数
double newton(double x0,double e);//通用牛顿迭代子程序
int main()
{
    double x0=3.14159/2;
    double e=10E-6;
    printf("x=%f\n",newton(x0,e));
    getchar();
    return 0;

}
double f2(double x)
{
    return -sin(x)-1;

}
double f1(double x)
{
    return cos(x)-x;
}
double newton(double x0,double e)   
{
    double x1;
    do
    {
        x1=x0;
        x0=x1-f1(x1)/f2(x1);
}
    while(fabs(x0-x1)>e);
    return x0;
}
搜索更多相关主题的帖子: include double return 子程序 通用 
2011-09-04 14:16
万仁全
Rank: 1
等 级:新手上路
帖 子:23
专家分:1
注 册:2011-8-31
收藏
得分:0 
大家帮帮忙啊!!谢谢
2011-09-04 14:17
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:0 
答案对的啊,你看看

#include"stdio.h"
#include"math.h"
double f1(double x);//要求解的函数
double f2(double x);//要求解的函数的一阶导数函数
double newton(double x0,double e);//通用牛顿迭代子程序
int main()
{
    double x0=3.14159/2;
    double x;
    double e=10E-6;
    printf("x=%f\n",x=newton(x0,e));
    printf("%f\n",cos(x)-x);
    printf("%f\n",cos(0.739085)-0.739085);
    return 0;

}
double f2(double x)
{
    return -sin(x)-1;

}
double f1(double x)
{
    return cos(x)-x;
}
double newton(double x0,double e)   
{
    double x1;
    do
    {
        x1=x0;
        x0=x1-f1(x1)/f2(x1);
    }
    while(fabs(x0-x1)>e);
    return x0;
}
2011-09-04 16:32
万仁全
Rank: 1
等 级:新手上路
帖 子:23
专家分:1
注 册:2011-8-31
收藏
得分:0 
我刚才又运行了一次,结果还是0.739085,cos0.739085接近1,怎么可能是0.739085??谢谢了
2011-09-05 18:31
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
cos0.739085
如果0.739085是用degree(度)表示就是接近1,用rad(弧度)表示就是0.739085啦
,我用计算器算的。
2011-09-05 18:37
万仁全
Rank: 1
等 级:新手上路
帖 子:23
专家分:1
注 册:2011-8-31
收藏
得分:0 
谢谢,你不说我还真没有想到呢!!看了几天程序都没发现错误,原来是对的啊,多谢各位了!
2011-09-10 16:23
快速回复:迭代法求根,但是结果是0.739085,明显不对
数据加载中...
 
   



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

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