| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 298 人关注过本帖
标题:一道编程题
只看楼主 加入收藏
w531137298
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-12-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
一道编程题
求助   大侠  :编写程序,用普通迭代法求方程f(x)=x+lnx-1.56=0的近似实根r(其中ln为自然对数),迭代初值为2,精确到0.0001。〔提示:必须把方程f(x)=0化成其等价形式x=g(x)〕(本题允许使用其他迭代法)
搜索更多相关主题的帖子: 编写程序 
2010-12-10 21:07
rainbow1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:277
专家分:839
注 册:2010-5-19
收藏
得分:20 

#include <math.h>
#include <iostream>
// f(x) = x + ln(x) - 1.56
double fun( double x )
{
       return ( x + log( x ) - 1.56 );
}

double fun1( double x )//用于求导数
{
       return ( 1 + 1/x );
}

using namespace std;
int main()
{
    double x = 2.0, y1, y2, temp;
    do
    {
           temp = x;
           y1 = fun( x );
           y2 = fun1( x );
           
           x = temp - y1/y2;
    }         
    while( fabs( x - temp ) >= 1e-4 ); //      判断是否满足要求
   
    cout << "方程的解是: " << temp << endl;
    return 0;
}
运行结果:
方程的解是 : 1.29866
2010-12-11 00:02
快速回复:一道编程题
数据加载中...
 
   



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

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