06【C语言 & 趣味算法】牛顿迭代法求方程根(可回看)

简介: 06【C语言 & 趣味算法】牛顿迭代法求方程根(可回看)

一、前情回顾



05【C语言&趣味算法】经典:兔子产子问题(即:Fibonacci数列)

04【C语言&趣味算法】“抓交通肇事犯"问题。算法改进:设置“标识变量”,有效减少循环次数。

03【C语言&趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。

02【C语言&趣味算法】借书方案问题:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?

01【C语言&趣味算法】百钱百鸡问题(问题简单,非初学者请忽略叭)。请注意算法的设计(程序的框架),程序流程图的绘制,算法的优化。


二、New Problem:牛顿迭代法求方程根



2.1问题描述


9f42938d3a3d4b318c60ec8148624e89.jpg


2.2问题分析


79abb9f42b0f4fc0b509dd4209cbe224.jpg

2.3算法设计


84ffc3c0b6ff4f4ca2fac14f8ddcd6bd.jpg


2.4确定程序框架


47cc00a949874a15ada518ff23724742.jpg


2.5迭代法求方程根


fc90755db5644872997d769ee040ef66.jpg


2.6完整code及测试


// 趣味06:牛顿迭代法 求方程根 问题 
#include<stdio.h>
#include<math.h>
int main()
{
float solution(float a,float b,float c,float d);    /*函数功能是用牛顿迭代法求方程的根*/
  float a,b,c,d,x;          /*a,b,c,d代表所求方程的系数,x用来记录求得的方程根*/
  printf("请输入方程的系数:");
  scanf("%f %f %f %f",&a,&b,&c,&d);
  x=solution(a,b,c,d);
  printf("所求方程的根为x=%f",x);
}
float solution(float a,float b,float c,float d)
{
  float x0,x=1.5,f,fd,h;          /*f用来描述方程的值,fd用来描述方程求导之后的值*/
  do
  {
    x0=x;           /*用所求得的x的值代替x0原来的值*/
      f=a*x0*x0*x0+b*x0*x0+c*x0+d;
      fd=3*a*x0*x0+2*b*x0+c;
  h=f/fd;
      x=x0-h;           /*求得更接近方程根的x的值*/
  }while(fabs(x-x0)>=1e-5);
  return x;
}

两个测试结果如下:


f3ac6e1701b94942bb48ced79ae859da.jpgc6c525aebb804914a69aca877c63b7cd.jpg

相关文章
|
1月前
|
自然语言处理 算法 搜索推荐
C语言中谈论算法
C语言中谈论算法
10 0
C语言中谈论算法
|
1月前
|
算法 安全 C语言
使用C语言实现DES算法代码
使用C语言实现DES算法代码
|
1月前
|
算法 搜索推荐 C语言
C语言的算法
C语言的算法
17 0
|
1月前
|
自然语言处理 算法 搜索推荐
C语言用伪代码表示算法
C语言用伪代码表示算法
29 0
|
11天前
|
缓存 算法 Python
python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
|
24天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
24天前
|
存储 算法 C语言
【算法与数据结构】 C语言实现单链表队列详解1
【算法与数据结构】 C语言实现单链表队列详解
|
1月前
|
存储 机器学习/深度学习 算法
C语言代码实现数据结构与算法
以上代码中,哈希表使用链表解决哈希冲突,每个链表节点包含一个键值对。hash函数用于计算键值对应的哈希值,insert函数用于向哈希表中插入一个键值对,若当前位置为空,则直接插入;否则,将新节点插入到链表末尾。search函数用于在哈希表中查找指定键值的值,若存在则返回其值,否则返回-1。
32 1
|
1月前
|
搜索推荐 算法 C语言
C语言排序算法
C语言排序算法
13 0
|
1月前
|
算法 数据处理 C语言
C语言核心之一的算法结构
C语言核心之一的算法结构
14 1