matlab中fminbnd函数求最小或者组大值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clc;
clear all;
close all;
 
fx = @(x) -(0.4./sqrt(1 + x.^2) - sqrt(1+x.^2) .* (1- 0.4./(1 + x.^2))+x);
[x0, f] =fminbnd(fx,0,2);  % f利用负号求最小值
x = 0 :0.1: 2;
y = feval(fx,x);
%% ========maxvalue====
figure
plot(x,-y,'b-','linewidth',2)
hold on
plot(x0,-f,'o','markersize',8,'linewidth',2,'markerFacecolor','g')
xlabel('x')
ylabel('y')
text(x0, -f-0.02, 'maxvalue')
%% ==============minvalue=======
%% ========maxvalue====
figure(2)
plot(x,y,'b-','linewidth',2)
hold on
plot(x0,f,'o','markersize',8,'linewidth',2,'markerFacecolor','g')
xlabel('x')
ylabel('y')
text(x0, f+0.02, 'minvalue')

  

posted on   Kermit.Li  阅读(7396)  评论(0编辑  收藏  举报

努力加载评论中...

导航

点击右上角即可分享
微信分享提示