matlab二分法程序?

2022-02-04 09:25:00 百科大全 投稿:一盘搜百科
摘要二分法基本思路一般地,对于函数f(x),如果存在实数c,当x=c时,若f(c)=0,那么把x=c叫做函数f(x)的零点。 解方程即要求f(x)的所有零点。 假定f(x)在区间(x,y)上连续

二分法基本思路

matlab二分法程序?插图

一般地,对于函数f(x),如果存在实数c,当x=c时,若f(c)=0,那么把x=c叫做函数f(x)的零点。 解方程即要求f(x)的所有零点。

matlab二分法程序?插图1

假定f(x)在区间(x,y)上连续

先找到a、b属于区间(x,y),使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],

现在假设f(a)<0,f(b)>0,a<b

1 如果f[(a+b)/2]=0,该点就是零点,

如果f[(a+b)/2]<0,则在区间((a+b)/2,b)内有零点,(a+b)/2>=a,从①开始继续使用

2 中点函数值判断。

如果f[(a+b)/2]>0,则在区间(a,(a+b)/2)内有零点,(a+b)/2<=b,从①开始继续使用 中点函数值判断。

这样就可以不断接近零点。

通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。

从以上可以看出,每次运算后,区间长度减少一半,是线形收敛。另外,二分法不能计算复根和重根。

二分法步骤

用二分法求方程的根的近似值的步骤

1 若对于有,则在内至少有一个根。

2 取的中点计算

3 若则是的根,停止计算,

运行后输出结果

若则在内至少有一个根。取;

若,则取;

④ 若(为预先给定的要求精度)退出计算,运行后输出结果,反之,返回步骤1,重复步骤1,2,3

二分法Mtalab程序

syms x;

fun=input(‘(输入函数形式)fx=’);

a=input(‘(输入二分法下限)a=’);

b=input(‘(输入二分法上限)b=’);

d=input(‘输入误差限 d=’)%二分法求根

%f=inline(x^2-4*x+4);

%修改需要求解的inline函数的函数体

f=inline(fun);%修改需要求解的inline函数的函数体

e=b-a; k=0 ;

while e>d

c=(a+b)/2;

if f(a)*f(c)<0

b=c;

elseif f(a)*f(c)>0

a=c;

else

a=c;b=c

end

e=e/2; k=k+1;

end

x=(a+b)/2;

x%x为答案

k%k为次数

声明:一盘搜百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 88888@qq.com