c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.

用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.

解:牛顿迭代法又叫牛顿切线法。设f =2x^3-4x^2+3x-6,f1为方程的导数,则f1 = 6x^2 - 8x+3,且f1=(f(x0)-0)/(x0-x1),推导得:x1 = x0 - f / f1

程序:

#include<stdio.h>

#include<math.h>

int main()

{

double x0,x1,f,f1;

x1 = 1.5;

do

{

x0 = x1;

f = 2*x0*x0*x0 - 4 * x0*x0 + 3 * x0 - 6;

f1 = 6 * x0*x0 - 8 * x0 + 3;

x1 = x0 - f / f1;

} while (fabs(x0 - x1) >= 1e-5);

printf("The root of equation is %5.2f\n",x1);//The root of equation is表示方程的根

return 0;

}

结果:

The root of equation is  2.00

请按任意键继续. . .

时间: 2025-01-13 22:09:24

c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.的相关文章

牛顿迭代法求方程的解

迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题.迭代法又分为精确迭代和近似迭代."二分法"和"牛顿迭代法"属于近似迭代法.迭代算法是用计算机解决问题的一种基本方法. 利用迭代算法解决问题,需要以下三个步骤: 1.确定迭代变量 在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量. 2.建立迭代关系式 所谓迭代关系式,指如何从变量的前一个值推出其下

C语言实现牛顿迭代法解方程

利用迭代算法解决问题,需要做好以下三个方面的工作: 一.确定迭代变量 在可以用迭代算法解决的问题中,我们可以确定至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量. 二.建立迭代关系式 所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系).迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成. 三.对迭代过程进行控制 在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题.不能让迭代过程无休止地执行下去.迭代过程的控制通常可分为两种情况

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

//牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16=0的近似解. ============================================================ */ #include<stdio.h> #include<math.h> #define E 1e-8 double hs(double x) {

牛顿迭代法 求方程根

牛顿迭代法 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要. 方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根.牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根.复根,此时线性

牛顿迭代法求方程的根

#include <stdio.h> #include <math.h> int main() {     double a,b,c,d,n,m,x,y;     while(scanf("%lf,%lf,%lf,%lf",&a,&b,&c,&d)!=EOF)     {         x=0;         m=a*x*x*x+b*x*x+c*x+d;         n=3*a*x*x+2*b*x+c;         y

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

//迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1=(Xn+a/Xn)/2. ================================================================== */ #include<stdio.h> #include<math.h> main() { float a,x0,x1;

经典算法:牛顿迭代法求平方根

//牛顿迭代法求平方根 1 double mysqrt(double num) 2 { 3 double x = num/2; 4 double y = 0; 5 do{ 6 x = x/2+num/(2*x); 7 y = x*x-num; 8 if(y<0) y = -y; 9 } while(y>0.0001); 10 return x; 11 } 12 int main(int argc, char* argv[]) 13 { 14 printf("%.3f",my

OJ刷题之《牛顿迭代法求根》

题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b,c,d的值一次为1,2,3,4,由主函数输入.求x在1附近的一个实根.求出根后由主函数输出.结果保留两位小数. 输入 系数a,b,c,d的值 输出 x在1附近的一个实根 样例输入 1 2 3 4 样例输出 -1.65 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() { double solut(double ,double ,double ,double ); double

牛顿迭代法求Logistic回归

接着上次的一篇文章:http://blog.csdn.net/acdreamers/article/details/27365941 在上次这篇文章中,对于Logistic回归问题,我们已经写出它的最大似然函数,现在来求最大似然估计.所以对似 然函数求偏导数,得到了个方程,即 由于我们只要根据这个方程解出所有的即可,但是这不是一件容易的事,还有Logistic回归求的是最大似 然估计,我们在多元函数求极值问题中也说过,导数等于零的点可能是极大值,极小值或者非极值.所以还要靠一个 叫Hessian