用matlab求一元函数在某区间的最大值的方法 急 急

是最大值啊 例f(x)=(1-x^3)*sin(3*x)
在(-2*pi,2*pi)
两种以上方法

>> f = inline('-(1-x^3)*sin(3*x)'); % 求最大值的话,取函数的相反数

>> [xmax,fval] = fminbnd(f,-2*pi,2*pi);

>> xmax % 最大值对应的x

xmax =-3.7505

>> fmax=-fval % 求出的最小值再取相反数,就是函数的最大值了

fmax =52.005

MAX函数

max函数为Matlab中求最大值的函数,格式如下:

M = max(A) %返回数组A中最大的元素

M = max(A,[],dim) %返回数组A中维度dim的最大的元素

[M,I] = max(___)

C = max(A,B)

以上内容参考:百度百科-最大值

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-21
>> f = inline('-(1-x^3)*sin(3*x)'); % 求最大值的话,取函数的相反数
>> [xmax,fval] = fminbnd(f,-2*pi,2*pi);
>> xmax % 最大值对应的x

xmax =

-3.7505

>> fmax=-fval % 求出的最小值再取相反数,就是函数的最大值了

fmax =

52.005本回答被提问者采纳
第2个回答  2009-07-11
这个需要两步:
clc;clear
syms x
f=(1-x.^3).*sin(3*x)
ezplot(f,[-2*pi 2*pi])
f1=diff(f)

f=@(x) (1-x.^3).*sin(3*x)
f1=@(x) -3*x.^2.*sin(3*x)+3*(1-x.^3).*cos(3*x)
ezplot(f1,[-2*pi 2*pi])
x0=fsolve(f1,-6:0.1:6);
x1=unique(x0)
maxmin=f(x1)

结果:

maxmin =

Columns 1 through 12

194.9062 -107.9561 52.0046 52.0046 52.0046 -20.1526 -20.1526 5.4887 5.4887 -1.1870 -1.1870 -1.1870

Columns 13 through 24

-1.1870 -1.1870 0.8868 -0.0051 -0.0051 3.7575 3.7575 -18.2744 -18.2744 50.0721 50.0721 -105.9984

Column 25

192.9351
第3个回答  2019-07-24
plot
相似回答