用二分法求根.用C语言或MATLAB

同题目 好手在帮忙啊1)用二分法求非线性方程f(x)=x6-5x5+3x4+x3-7x2+7x-20=0在区间[0, 5]内的根。  ≤10-5。用C语言或MATLAB

#include<stdio.h>
#include<math.h>
double f(double x)
{
return x*x*x*x*x*x-5*x*x*x*x*x+3*x*x*x*x+x*x*x-7*x*x+7*x-20;
}

void main()
{

double a=0.0,b=5.0,c;
c=(a+b)/2;
while(fabs(f(c))>0.00001){
if(f(c)*f(b)<0) a=c;
else b=c;
c=(a+b)/2;
}
printf("%lf\n",c);
}

运行了26次!
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-23
加点分吧,都不容易!
包你满意

用二分法求根.用C语言或MATLAB
include<math.h> double f(double x){ return x*x*x*x*x*x-5*x*x*x*x*x+3*x*x*x*x+x*x*x-7*x*x+7*x-20;} void main(){ double a=0.0,b=5.0,c;c=(a+b)\/2;while(fabs(f(c))>0.00001){ if(f(c)*f(b)<0) a=c;else b=c;c=(a+b)\/2;} printf("...

matlab怎么用二分法求方程的根?
function y=fun(x)二分法 即一分为二的方法。设[a,b]为R的紧区间, 逐次二分法就是造出如下的区间序列:a0=a,b0=b,且对任一自然数n,[an+1,bn+1]或者等于[an,cn],或者等于[cn,bn],其中cn表示[an,bn]的中点。一般地,对于函数f(x),如果存在实数c,当x=c时,若f(c)=0,那...

用matlab程序写用二分法求方程根
二分法在很多地方应该都会见到,这里是通过二分法迭代逼近的方法求出一个方程的根。function xc = bisection(f,a,b,tol)% use the bisection method to find the root of the function% Page 30,computer problem 7(Bisection method)% input:% f:the function that transform from the equation% a...

Matlab编写程序用二分法求解非线性方程的根
用二分法求方程x*x-x-1=0的正根,要求精确到小数点后四位。(matlab)l1 计算公式 f(ak)*f(bk)<0;bk-ak=1\/2k-1*(b-a);a1<=a2<=… <=ak<=…,b1<=b2<=…<=bk<=…。l2 算法分析 设f(x)∈C[a,b],且f(a)f(b)<0,在[a,b]间寻找实根,记[a1,b1]=[a,b],取x1=(...

matlab怎么用二分法求根啊?比如说x-tan(x)=0在[4.0,4.6]上的根是多少...
程序:fun=inline('x-tan(x)');a=4;b=4.6; tol=1e-4;n=1;c=(a+b)\/2;while abs(feval(fun,c))>tol if feval(fun,a)*feval(fun,c)<0 b=c;c=(a+b)\/2;elseif feval(fun,b)*feval(fun,c)<0 a=c;c=(a+b)\/2;else y=c;tol=10000;end n=n+1;end y=c 结果:...

matlab二分法求方程的根
fx=fc,x=c 结果:fx = -2.414986223420179e-005 x = 0.510986328125000 问题2:用二分法求方程x^3-3*x-1=0的根 解答:先建立二分法的fun.m文件,代码如下:function fun(a,b,e)f是自定义的函数 a为隔根区间左端点,b为隔根区间右端点,e为绝对误差限 if nargin==2 e=1.0e-6;else...

Matlab编写程序用二分法求解非线性方程的根
用MATLAB二分法求方程2x²+4x-5的解,其方法如下:1、自定义函数 dichotomy_fun=@(x)2*x^2+4*x-5;2、用二分法函数——dichotomy(),求解在x=(0.5,1.5)之间的值x=dichotomy(dichotomy_fun,0.5,1.5,1e-8)3、运行结果 n = 27 %运算次数 x = 0.870828695595264 %x运算...

求用MATLAB编制方程求根的二分法和Newton法的 Matlab 程序!!!谢谢...
1 区间二分法求出的仅仅是方程的一个单根,如果方程有重根或者多个根时,在做区间二分法时就会出现分叉,这样方程有几个根,就会产生几个实数序列,每一个实数序列的极限便是方程的一个根 2 通常用区间二分法为一些迭代法提供靠近x^*的初始选代值;3 区间二分法的缺点是不能求方程的复数根。format lon...

请高手高手用matlab编程实现 求二分法求方程的根
b = 1;c = (a + b) \/ 2;fa = 1 - a - sin(a);fb = 1 - b - sin(b);fc = 1 - c - sin(c);while fc >= e if fa * fc >= 0 a = c;else b = c;end c = (a + b) \/ 2;fa = 1 - a - sin(a);fb = 1 - b - sin(b);fc = 1 - c - sin(...

求matlab编程 用二分法和牛顿迭代法求根号a
二分法:function x=sqrt_bisect(a)f=@(x)x^2-a;if a<0 warning(['负数不能求平方根']);x=[];elseif a==0|a==1 x=a;else if a<1 xa=a;xb=1;else xa=1.00;xb=a;end while abs(xa-xb)>1e-6 x=(xa+xb)\/2;if f(xb)*f(x)>0 xb=x;elseif f(xa)*f(x)>0 ...

相似回答