zoukankan      html  css  js  c++  java
  • 用牛顿迭代法和二分法求方程的根

    今天发现百度知道有人问这个问题,所以就信手帮他做了一下题目,总共两道题,使用的是C语言解决的。
    题目:
    1.请设计程序,用牛顿迭代法求f(x)=cos(x)-x的近似根,要求精确到10-6。 (1)用函数float newtoon(float x)求方程在x附近的根; (2)用函数float F(float x)求x处的函数值,用函数float F1(float x)求f(x)在x处的导数; (3)在主函数中输入x0,调用函数求得方程的近似根(精度要求为10-5),并输出结果。
    程序代码如下:
     1 #include<stdio.h>
     2 #include<math.h>
     3 float Fl(float x)
     4 {
     5     float y;
     6     y=cos(x)-x;
     7     return y;
     8 }
     9 float newtoon(float x)
    10 {
    11     float y;
    12     y=x-Fl(x)/(-sin(x)-1);
    13     return y;
    14 }
    15 void main()
    16 {
    17     float x0,x1;
    18     printf("Please input x0:\n");
    19     scanf("%f",&x1);
    20     do
    21     {
    22         float z;
    23         x0=x1;
    24         x1=newtoon(x0);
    25     }while(fabs(x1-x0)>=1e-5);
    26     printf("The root of equation is %f\n",x1);
    27 }
     
    2.已知f(x)=lnx+x2在(1/e, 1)内有唯一的一个实根。请设计程序,用二分法求该近似实根。精确到|f(x)|<0.0001为止。 (1)用函数double eff(double x)求方程在x附近的根; (2)在主函数中输入x,调用函数求得方程的近似根,并输出结果。
    程序代码如下:
     1 #include<stdio.h>
     2 #include<math.h>
     3 double eff(double x)
     4 {
     5     double y;    
     6     y=log(x)+pow(x,2);
     7     for(;y<=1e-4;){
     8     if(y>0)
     9     {
    10         x=(x+1/exp(1))/2;
    11         eff(x);
    12     }
    13     else
    14     {
    15         x=(x+1)/2;
    16         eff(x);
    17     }
    18     }
    19     return y;
    20 }
    21 void main()
    22 {
    23     double x,z;
    24     printf("Please input x:\n");
    25     do
    26     {
    27         scanf("%lf",&x);
    28     }while(x<=1/exp(1)||(x>=1));//输入的数字必须在区间内,因为题目中已经指出在这个区间有一个根!
    29     z=eff(x);
    30     printf("the root of the equation is:%lf\n",z);
    31 }

    其实也不难吗,只不过就是数学要理解好哦。

    鹜落霜洲,雁横烟渚,分明画出秋色。暮雨乍歇,小楫夜泊,宿苇村山驿。何人月下临风处,起一声羌笛。离愁万绪,闲岸草、切切蛩吟似织。 为忆芳容别后,水遥山远,何计凭鳞翼。想绣阁深沉,争知憔悴损,天涯行客。楚峡云归,高阳人散,寂寞狂踪迹。望京国。空目断、远峰凝碧。
  • 相关阅读:
    linux shell创建目录、遍历子目录
    linux shell写入单行、多行内容到文件
    如何起个好名字
    linux shell编程中的数组定义、遍历
    详解浏览器分段请求基础——Range,助你了解断点续传基础
    实现一个大文件上传和断点续传
    localStorage设置过期时间
    Python3 __slots__
    Nginx 流量统计分析
    argparse简要用法总结
  • 原文地址:https://www.cnblogs.com/thunderest/p/3047189.html
Copyright © 2011-2022 走看看