c语言程序用迭代法求方程:f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度|x*-xn|<0.5×10-5

作者&投稿:资叶 (若有异议请与网页底部的电邮联系)
用Matlab编程,采用不动点迭代法,求f(x)=x3+4x2-10在区间[1,2]上的 一个根~

地球可是真小啊,
看来老师布置作业都一样啊!
前段时间刚做过这道题!
给你个正确的程序!
采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。
不动点迭代法程序:
function
[y,n]=BDD(x,eps)
if
nargin==1
eps=1.0e-6;
elseif
nargin<1
error
return
end
x1=gg(x);
n=1;
while
(norm(x1-x)>=1e-6)&&(n<=10000)
x=x1;
x1=gg(x);
n=n+1;
end
y=x;
M函数:
function
f=gg(x)
f(1)=sqrt(2.5-(x^3)/4);
结果如下:
>>
BDD(1)
n
=
21
ans
=
1.3652
PS
不会一个学校的吧?哈哈!

#include
#include
using namespace std;

double f(double x)
{
return x*x*x + 4*x*x - 10;
}


int main()
{
double t1 = 1,t2 = 2;
double t = (t1+t2)/2;

while (fabs(f(t)) >= 1.0/2/1000)
{
if(f(t1)*f(t)<=0)
{
t2=t;
t=(t1+t2)/2;
}
else if(f(t)*f(t2)<=0)
{
t1=t;
t=(t1+t2)/2;
}
}
cout<<t<<endl;
return 1;
}

#include"stdio.h"
//#include"conio.h"
#include"math.h"
float fun(float x)
{
return (x*x*x+4*x*x-10);
}
float xpoint(float x1,float x2)
{
return (x1+x2)/2;
}
float root(float x1,float x2)
{
float x,y,y1,y2;
y1=fun(x1);
printf("");
y2=fun(x2);
do
{x=xpoint(x1,x2);
y=fun(x);
if(y1*y<0)
{
x2=x;
y2=y;
}
else
{
x1=x;
y1=y;
}
}while(fabs(fun(x))<5e-6);
return x;
}
void main()
{
float a,b,f1,f2,x;
do
{
printf("输入a b\n");
scanf("%f%f",&a,&b);
f1=fun(a);
f2=fun(b);
}while(f1*f2>=0);
x=root(a,b);
printf("%f",x);
getch();
}

采纳我哦


C语言迭代法?
迭代法就是让方程的解不断去逼近真实的解。这是一种数值计算方法。思路就是按上面的步骤,只设置两个x0,x1开始x0代表第一个值,x1代表第二值第一次迭代之后,让x0=x1,x1=新的值,这样x0代表第二个值,x1代表第三值以此类推。。。直到误差满足要求 ...

在C语言中,什么是迭代法?
迭代法就是让方程的解不断去逼近真实的解。这是一种数值计算方法。牛顿迭代法是一种常用的计算方法,这个大学大三应该学过。程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法,即一次性...

c++ 迭代法求根号
第一个,你写的int main()最后要求返回一个int 第二个,x没有赋初值,应该是x=a\/2;y其实也应该赋初值,比如0 第三个,进入循环的条件应该是while(fabs(x-y)>1e-5),原程序正好反了,根本没有进入迭代过程 第四个,没有判断输入非负 include <cstdlib>#include <iostream>#include <cmath>...

编程,编写函数f(x),用迭代法求x=a的三次方根
参考程序如下:include <stdio.h>#include <math.h>double f(double a,double x) \/\/x为上一个近似解{ x=2.0\/3*x+a\/(3*x*x); \/\/不能直接写2\/3 return x;}main(){ double a,x1,x0; scanf("%lf",&a); x1=a\/3; \/\/假设初始值 do { x0=x1; x1= f(a,x0)...

在C语言中,什么是迭代法
迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤...

C语言程序设计,用迭代法求根号a,公式为Xn+1=(1\/2)(Xn+a\/Xn)。_百度知...
main(){ double m,n=1.0,a;printf("请输入a:");scanf("%lf",&a);do { m=n;n= (m + a\/m) \/ 2;} while(fabs(n-m)>1e-5);printf("结果为:%7.5f\\n",n);}。最佳答案由提问者推荐 include<stdio.h> include<math.h> void main(){ float a,x0,x1;scanf("%f",&a)...

C语言编程:牛顿迭代法求方程的根
程序流程分析:① 赋值x0=1.5,即迭代初值;② 用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;③ 计算增量d=f\/fd;④ 计算下一个x,x=x0-d;⑤ 把新产生的x替换x0,为下一次迭代做好准备;⑥ 若d绝对值大于1e-3,则重复②③...

C语言编程中用牛顿迭代法求解方程
int main(){ float x1,x,f1,f2;static int count=0;x1=1.5\/\/定义初始值 do { x=x1;f1=x*(2*x*x-4*x+3)-6;f2=6*x*x-8*x+3;\/\/对函数f1求导 x1=x-f1\/f2; count++;}while(fabs(x1-x)<=1e-5);printf("%8.7f\\n",x1); printf("%d\\n",count);return 0;} \/\/...

编个C语言程序,用一般迭代法求方程sinx- x^2\/2=0在x=1附近的根(精确到...
牛顿迭代法 include <stdio.h> include <math.h> int main(){ float x=1,x1;while(1){ x1=x-(sin(x)-0.5*x*x)\/(cos(x)-x);cout<<x1<<endl;if(x1-x<0.00001 && x1-x>-0.00001)break;x=x1;} return 0;} 结果:1.74282 1.4641 1.40703 1.40442 1.40441 ...

使用迭代法的C程序
迭代与其他重复算法不同的是,使用同一个变量既作为参数又作为结果,也就是循环使用同一变量不断推导出新的值,直到满足指定的条件为止。下面就是迭代的一个例子 int i;int k=1; \/\/参数 for(i=0;i<10;i++){ k=(k+1)*2;\/\/参数代入计算公式,并把结果存入参数,用于下一次循环 } ...

库伦旗14788399725: c语言程序用迭代法求方程:f(x)=x3+4x2 - 10=0在[1,2]内的一个实根,且要求满足精度|x* - xn|<0.5*10 - 5 -
韶琛达纳: #include"stdio.h" //#include"conio.h" #include"math.h" float fun(float x) {return (x*x*x+4*x*x-10); } float xpoint(float x1,float x2) {return (x1+x2)/2; } float root(float x1,float x2) {float x,y,y1,y2;y1=fun(x1);printf("");y2=fun(x2);do{x=xpoint(x...

库伦旗14788399725: 用迭代法解方程f(x)=x - ln(x+2)=0,用c语言编出程序.急急急 -
韶琛达纳: stdio;ans;=&nbsp.h>0;anseps) %;while #include &nbsp.0, <main() { 1;&nbsp.h>= math;r= log(r int (fabs(r-ans) double 0; { return > ;1;double 2);eps 1; r); &nbsp.0e-8; = // printf(" ans&nbsp, =&nbsp.0;} r &nbsp.6f\n"+ &nbsp.146193 &nbsp#include &lt

库伦旗14788399725: C语言编程,指针,编写函数,用牛顿迭代法求方程f(x)=2x3 - 4x2+3x - 6=0在1.5附近的根.请给出运算结果 -
韶琛达纳: #include <stdio.h> #include <math.h> double root(double (*f)(double),double (*f1)(double), double x,double eps); double fx(double x){ return 2*x*x*x-4*x*x+3*x-6; } double fp(double x){ return 6*x*x-8*x+3; } int main() { double x=1.5,y,eps=1e-08; printf("...

库伦旗14788399725: c语言 用牛顿迭代法求f(x); -
韶琛达纳: #include "stdio.h"#include "math.h" main() {float x,f,f1; //f代表 f(x)=2x^3-4x^2+5x-18,f1代表 f'(x)=2*x^2-4*2x^+5 =6*x*x-8*x+5; x=8; // x的初值可为任意值 do { f=2*x*x*x-4*x*x+5*x-18; //f(x)=2x3-4x2+5x-18 f1=6*x*x-8*x+5; //f(x)的导数: f'(x)=2*3* ...

库伦旗14788399725: 牛顿迭代法解方程,C语言程序 -
韶琛达纳: 给你一点提示.牛顿迭代法要计算(1) y1=f(x) 在 x 的函数值(2) d1=f(x) 的一阶导数 在 x 的值 你可以写两个函数,分别计算y1,d1 如果一阶导数有解析解,则可用赋值语句,否则要写数值解子程序.步骤:设解的精度,例 float eps=0.000001; 设x初值,x1; 算y1=f(x1); 迭代循环开始 算一阶导数 在 x1 的值 d1 用牛顿公式 算出 x2; [x2= x1- y1/ d1] 如果 fabs(x2-x1)> eps 则从新迭代-- 用新的函数值和一阶导数值推下一个 新x.

库伦旗14788399725: 用C语言编写程序,用牛顿迭代法求高次方程f(x)=5*x*x*x*x*x - 8*x*x*x+10*x*x - 7x+25=0的近似根?急用! -
韶琛达纳: 牛顿迭代法的思想是这样的:x和x0不断的迭代.令f(x)=5*x^5-8x^3+10x^2-7*x+25 则f'(x)=25x^4-24x^2+20x-7 有:x=x0-f(x)/f'(x) 收敛于:|x-x0|<e(有是一个很小的数,在这里取e为0.000001),具体代码如下:#include "stdio.h"#include "math.h...

库伦旗14788399725: C++程序编程:牛顿迭代法求解方程近似根利用牛顿迭代法求方程f(x)=x*x - 3*x - e(x次幂)+2=0在x=0附近的根;误差不超过0.5*10( - 5次幂)高手帮忙! -
韶琛达纳:[答案] 很简单,你自己写,给你提示如下: 头文件加: #include 函数: f(x) = x*x - 3.0 * x - exp(x) + 2.0; 一阶导数: f2(x) = 2.0 * x - 3.0 -exp(x); 迭代公式: x1 = x0 - f(x0) / f2(x0); 初值: x0 = 0.0; 收敛条件: if (fabs(x1-x0) else { x0 = x1; 返回去再迭代. }

库伦旗14788399725: 用C语言编程求牛顿迭代法求方程f(x)=0的根.( -
韶琛达纳: #include void main() { float s,f0,h,x; int n,i; printf("input n:"); scanf("%d",&n); h=1.0/n; f0=4.0; s=0.0; for(i=1;i void main() { float s,f0,f,h,xi; int n,i; printf("input n:"); scanf("%d",&n); h=1.0/n; f0=4.0; s=0.0; for(i=1;i

库伦旗14788399725: C++程序编程:牛顿迭代法求解方程近似根 -
韶琛达纳: 很简单,你自己写,给你提示如下: 头文件加: #include 函数: f(x) = x*x - 3.0 * x - exp(x) + 2.0; 一阶导数: f2(x) = 2.0 * x - 3.0 -exp(x); 迭代公式: x1 = x0 - f(x0) / f2(x0); 初值: x0 = 0.0; 收敛条件: if (fabs(x1-x0) < 0.5E-05) { 成功;} else { x0 = x1; 返回去再迭代. }

库伦旗14788399725: 牛顿迭代法,要c语言的!!!急用,在线等 -
韶琛达纳: 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网