[C++]已知f(x) = cosx - x。x的初值为3.14159/4,用牛顿法求解方程f(x) = 0的近似解,要求精确到10-6。f(x)的牛顿法的表达式为xn+1 = xn + (cosxn

(附加题)已知f(x) = cosx - x。x的初值为3.14159/4,用牛顿法求解方程f(x) = 0的近似解,要求精确到10-6。f(x)的牛顿法的表达式为xn+1 = xn + (cosxn–xn) / (sinxn + 1)。请用函数编写

输出格式

该方程的近似解

输出样例 

该方程的近似解为0.739085

数据范围与提示

精确到10-6的意思是xn+1xn的差值绝对值小于等于10-6


代码版本1:
#include<iostream>

 

#include<stdio.h>

using namespace std;

void main()

{

 double delta = 100;

 double xn = 3.14159 / 4;

 while (fabs(delta) >= 1e-6)

 {

  delta = xn;

  xn = xn + (cos(xn) - xn) / (sin(xn) + 1);

  delta -= xn;

 }

 cout  <<"该方程的近似解为"<< xn << endl;

}

代码版本2:

 #include<iostream.h>

#include<math.h>

double Newton(double x0,double e);

int main()

{

 double x0=3.14159/4;

 double e=10E-6;

     cout<<Newton(x0,e)<<endl;

}

double Newton(double x0,double e)

{

 double x1;

    do

 {

       x1=x0;

    x0=x1-(cos(x1)-x1)/(sin(x1)-1);

    }

 while(fabs(x0-x1)>e);

 return x0;

}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值