一:用迭代法求 x=√a。求平方根的迭代公式为:X(n+1)=(Xn+a/Xn) /2。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h> int main()
{
double x1, x2;
float a;
scanf("%f", &a);
x2 = 1.0;
do
{
x1 = x2;
x2 = (x1 + a / x1) / 2;
} while (fabs(x1-x2)>pow(10,-5
));
printf("value:%lf", x2);
system("pause");
return ;
}

二:用牛顿迭代法求方程在1.5附近的根(2x3-4x2+3x-6=0)

例:方程求根牛顿迭代法 求方程 f(x)=x3+x2-3x-3=0在1.5附近的根

f(x)=x^+x^-3x-
f'(x)=3x^2+2x-3
x(n+)=xn-f(xn)/f'(xn)
令x1=1.5
x2=1.777778
x3=1.733361
x4=1.732052
x5=1.732051
x6=1.732051
如果精确到0.,则x=1.732051
准确值=根号3

重要公式

#include <stdio.h>
#include <stdlib.h>
#include <math.h> int main()
{
double x1=, x2;
double fx1, fx2;
x2 = 1.5;
while (fabs(x1 - x2)>=1e-)
{
x1 = x2;
fx1 = * x1*x1*x1 - * x1*x1 + * x1 - ;  //f(xn)
fx2 = * x1*x1 - * x1 + ;           //f(xn)'
x2 = x1 - fx1 / fx2;
}
printf("value:%lf", x2);
system("pause");
return ;
}

三:二分法求方程的根

给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
确定区间[a,b],验证f(a)·f(b)<0(这是前提,选取的区间必须满足这个条件),给定精确度ξ.
求区间(a,b)的中点c.
计算f(c). () 若f(c)=,则c就是函数的零点;
() 若f(a)·f(c)<,则令b=c;
() 若f(c)·f(b)<,则令a=c.
() 判断是否达到精确度ξ:即若|a-b|<ξ,则得到零点近似值a(或b),否则重复2-.

#include <stdio.h>
#include <stdlib.h>
#include <math.h> double fx(double x)
{
return * x*x*x - * x*x + * x - ;
} int main()
{
double x1 , x2;
double fx1, fx2;
double e = 1e-; do
{
printf("enter (x1,x2):\n");
scanf("%lf", &x1);
scanf("%lf", &x2);
if (x1>x2)
{
double temp = x1;
x1 = x2;
x2 = temp;
}
fx1 = fx(x1);
fx2 = fx(x2);
} while (fx1*fx2>); if (fabs(fx1) < e)
printf("solution1:%lf\n", x1);
else if (fabs(fx2) < e)
printf("solution2:%lf\n", x2);
else
{
while (fabs(x1 - x2) >= e)
{
double mid = (x1 + x2) / ;
if (fx(mid)*fx2 < )
x1 = mid;
else
x2 = mid;
}
printf("solution3:%lf", x2);
}
system("pause");
return ;
}

C语言复习---迭代法,牛顿迭代法,二分法求根的更多相关文章

  1. 【数值计算方法】二分法求根的C++简单实现

    给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下: 1 确定区间[a,b],验证f(a)·f(b)<0,给定精确度ξ. 2 求区间(a,b)的中点c. 3 计算f(c). (1) 若f( ...

  2. python二分法、牛顿法求根

    二分法求根 思路:对于一个连续函数,左值f(a)*右值f(b)如果<0,那么在这个区间内[a,b]必存在一个c使得f(c)=0 那么思路便是取中间点,分成两段区间,然后对这两段区间分别再比较,跳 ...

  3. YTU 2405: C语言习题 牛顿迭代法求根

    2405: C语言习题 牛顿迭代法求根 时间限制: 1 Sec  内存限制: 128 MB 提交: 562  解决: 317 题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b ...

  4. C语言之基本算法11—牛顿迭代法求平方根

    //迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1 ...

  5. C语言之基本算法25—牛顿迭代法求方程近似根

    //牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16 ...

  6. 141. Sqrt(x)【牛顿迭代法求平方根 by java】

    Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...

  7. Atitit 迭代法  “二分法”和“牛顿迭代法 attilax总结

    Atitit 迭代法  "二分法"和"牛顿迭代法 attilax总结 1.1. ."二分法"和"牛顿迭代法"属于近似迭代法1 1. ...

  8. 【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根

    问题描述 给定三次函数f(x)=ax3+bx2+cx+d的4个系数a,b,c,d,以及一个数z,请用牛顿迭代法求出函数f(x)=0在z附近的根,并给出迭代所需要次数. 牛顿迭代法的原理如下(参考下图) ...

  9. 基于visual Studio2013解决C语言竞赛题之0422牛顿迭代法

      题目

随机推荐

  1. Join 和 Apply 用法全解

    在关系型数据库系统中,为了满足第三范式(3NF),需要将满足“传递依赖”的表分离成单独的表,通过Join 子句将相关表进行连接,Join子句共有三种类型:外连接,内连接,交叉连接:外连接分为:left ...

  2. redis安装命令

    要进入redis的安装目录: cd 目录 安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose 卸 ...

  3. Redis简介与Memcached的比较

    Redis简介 Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的 ...

  4. mount命令详解及常见问题汇总

    一 .mount命令(用来挂载硬盘或镜像等) 用法:mount [-t vfstype] [-o options] device dir1.-t vfstype 指定文件系统的类型,通常不必指定.mo ...

  5. MOSFET简介以及PMOS和NMOS的差异

    最近在工作中,一直在调试关于MOSFET的电路.在设计过程中发现了PMOS和NMOS的差异,在此记录. 一. MOSFET简介 MOSFET (metal-oxide-semiconductor fi ...

  6. Git 命令简单罗列

    源教程出自 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 整 ...

  7. Win10 + vs2017 编译并配置tesseract4.1.0

    tesseract 是一个开源的OCR (Optical Character Recognition , 光学字符识别) 引擎,本文就介绍一下自己在编译 tesseract4.1.0时遇到的一些坑,希 ...

  8. centos上部署mysql

    本文记录整个安装的过程和跳进的坑,大家预祝我能从坑里爬出来吧 当前系统版本 开始我们的安装: 在安装之前查阅了部分资料,大体安装流程 yum -y install mysql yum -y insta ...

  9. PAT甲题题解-1059. Prime Factors (25)-素数筛选法

    用素数筛选法即可. 范围long int,其实大小范围和int一样,一开始以为是指long long,想这就麻烦了该怎么弄. 而现在其实就是int的范围,那难度档次就不一样了,瞬间变成水题一枚,因为i ...

  10. C++中清空缓冲区

    C++中标准输入cin有多种输入方式.. 这篇文章罗列的还是简要易懂的.C++输入cin详解...如果只是简单的使用cin>>的话,会单个token的读入.但是会忽略换行符,空格,制表符等 ...