matlab中利用二分法来求解方程的根
先点击新建脚本,并点击保存。对于利用二分法来求解函数方程的根,首先要先明确给定的自变量x的范围,然后再利用matlab来进行求解。以下举个例子:
求
f
(
x
)
=
x
3
−
x
−
1
f(x)=x^3-x-1
f(x)=x3−x−1,在[1,2]内的根
a=1;
b=2;
c=(a+b)/2;
x=a:b;
f=@(x)x^3-x-1;
while abs(a-b)>1e-6
if f(c)*f(a)<0
b=c;
else
a=c;
end
c=(a+b)/2;
x=c;
end
x
对于以上需要注意几点:
1、这里的
f
=
@
(
x
)
x
3
−
x
−
1
f=@(x)x^3-x-1
f=@(x)x3−x−1,其中@是函数句柄,是matlab中定义函数使用的,@(x) 相当于我们熟知的 syms x 定义变量 x 是一个道理的 ,如果不这样定义的话会运行不出来。
2、这里的 while abs(a-b)>1e-6 ,abs(a-b)是取 a-b 的绝对值
3、再往后则是根据二分法的原理来进行判断并求解
再比如,求函数 f(x)=tan(x)-x-0.5 在[0,1]的根
a=0;
b=1;
c=(a+b)/2
x=a:b;
f=@(x)tan(x)-x-0.5;
while abs(b-a)>1e-6
if f(c)*f(a)<0
b=c;
else
a=c;
end
c=(a+b)/2;
x=c;
end
x
其实不难发现,只要弄懂了二分法的原理了,对于给定的函数都适用