如何用MATLAB段函数的最小值和最大值

如题所述

第1个回答  推荐于2016-06-02
主要思想:除了求极值点对应的函数外还要比较给定范围端点对应的函数值.
一般用的命令为:
[x,fval,exitflag,output]=fminbnd(fun,x1,x2,option)
option可省.X1,X2为给定的范围,FUN为句柄或内联函数

例如:
y=2*x^3-3*x^2 -1=<x<=4 的最大与最小值
程序
clc;clear;
fun=@(x)2*x^3-3*x^2-1;
fun2=inline('-(2*x^3-3*x^2-1)','x');
ezplot(fun,[-1 4]); %先画图判断大概情况
[xmin,fmin,exitflag,output]=fminbnd(fun,-1,4);
[xmax,fmax,exitflag,output]=fminbnd(fun2,-1,4);
fmax=-fmax; %
xmin,fmin,xmax,fmax %最大最小值
x=sym('x');
dfun=diff('2*x^3-3*x^2-1',x,1);
xm=solve(dfun);
xm=subs(xm);
fm=subs('2*x^3-3*x^2-1',x,xm);
xm,fm %极小值,极大值

结果:
xmin =

-1

fmin =

-6

xmax =

4

fmax =

79

xm =

0
1

fm =

-1
-2
可见最大最小值并非在极值点处而是在给定范围的端点本回答被网友采纳
第2个回答  2008-06-27
min最小值
max最大值
第3个回答  2008-07-02
o(∩_∩)o
不过如果是函数,可能也要求一下导吧。。
相似回答