记录用matlab解决题目的方法
逻辑
对于连续函数f(x),如果f(a) * f(b) < 0,则在区间[a,b]上必定至少存在一点c使得f(c) = 0。二分法呢,就是在区间[a,b]上取中点center,如果f(a) * f(center) < 0,则令b = center,区间缩小为[a,center];如果f(center) == 0,则center就是零点啦,就是一个根,跳出程序;否则,令a = center,区间缩小为[center,b],继续循环计算;
当然,计算的函数值不会每次都恰好等于0,所以要给定一个精度e,使得在合适的范围内,程序能够终止,即当b - a < e时,区间范围缩小到指定精度范围内,程序终止,此时a或b可以称为方程的近似解😃
对于多项式方程的求解,就需要画图看根位于的大致区间,代入二分法后求解就可以得出近似解啦😝
代码
- binary.m
function I = binary(left,right,e)
center = 0;
while right-left>e %判断精度
center=(right+left)/2;<