MATLAB求函数零点与极值

1.      roots函数

针对多项式求零点(详见MATLAB多项式及多项式拟合)


2.      fzero函数

返回一元函数在某个区间内的的零点.

x0 = fzero(@(x)x.^2-3*x-4,[1,5]);

只能求区间里面的一个零点,并且要求在给定区间端点函数值异号,所以使用之前应该先作图,得出单个零点分布的区间,然后使用该函数求零点.若有多个零点,则需多次使用该函数.

如需求上例中的全部零点,先作图

fplot(@(x)x.^2-3*x-4,[-10,10]);

得知两个零点的分布区间,然后两次使用fzero函数求对应区间的零点.

x1 = fzero(@(x)x.^2-3*x-4,[-2,0]);

x2 = fzero(@(x)x.^2-3*x-4,[2,6]);


3.      solve函数

求一元函数(方程)的零点.

x0 = solve('x^2-3*x-4=0','x');

注意方程需包含’=0’部分,另外,不建议直接将方程写在函数solve的参数部分,可以用符号运算的方法.


4.      fminbnd函数

求一元函数在某个区间内的最小值和对应的最小值点.

[x0,fmin]=fminbnd(@(x)x+1/(x+1),-0.5,2);

求极值与极值点之前须估计极值点的区间,保证在该区间没有使得函数值趋于无穷的点.

原文地址:https://www.cnblogs.com/tensory/p/6590787.html