当前位置:网站首页>MATLB|和她跌宕起伏最终到达人生之峰【浪漫旅途】
MATLB|和她跌宕起伏最终到达人生之峰【浪漫旅途】
2022-08-09 23:12:00 【电气工程研习社】
️️️️️️
拥有海一样的胸怀,才能有海一样的人生;拥有海一样的宁静,才能镇得住波涛汹涌。做人如海,有跌宕起伏,有波澜不惊。

欢迎来到本博客️️️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者,博主专门做了一个专栏目录,整个专栏只放了一篇文章,足见我对其重视程度:博主专栏目录。做到极度细致,方便大家进行学习!亲民!!!还有我开了一个专栏给女朋友的,很浪漫的喔,代码学累的时候去瞧一瞧,看一看:女朋友的浪漫邂逅。有问题可以私密博主,博主看到会在第一时间回复。
欢迎您的到来
个人主页:科研室
所有代码目录:电气工程科研社
【现在公众号名字改为:荔枝科研社】
本文目录如下:️️️
目录

漂亮的运行结果

Matlab代码
function [] = LocalMinimaSuffring()
close all; clear all;
global history
history = [];
% *************峰函数****************
dx = 1/8;
[x,y] = meshgrid(-3:dx:3);
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...
- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...
- 1/3*exp(-(x+1).^2 - y.^2);
% Self demonstration
surfc(x,y,z)
axis('tight')
xlabel('x'), ylabel('y'), title('峰值')
%% ******************开始********************
x0 = [-3 -3];
y0 = peaksObj(x0);
hold on
plot3(x0(1),x0(2),-10,'gs','lineWidth',2,'MarkerSize',10);
plot3(x0(1),x0(2),y0,'gs','lineWidth',2,'MarkerSize',10);
% [c,ceq] = peaksCon(x0)
options = optimset('Display','iter','OutputFcn',@peaksOutputFcn);
x = fmincon(@peaksObj,x0,[],[],[],[],[],[],@peaksCon,options)
plot3(history(:,1),history(:,2),(-10)*ones(size(history,1)),'-r.','lineWidth',1,'MarkerSize',15)
plot3(history(:,1),history(:,2),history(:,3),'-r.','lineWidth',1,'MarkerSize',15)
plot3(history(end,1),history(end,2),-10,'r*','lineWidth',2,'MarkerSize',10)
plot3(history(end,1),history(end,2),history(end,3),'r*','lineWidth',2,'MarkerSize',10)
%% ******************x0 = [3 -2];********************
history = [];
x0 = [3 -2];
hold on
plot3(x0(1),x0(2),-10,'go','lineWidth',2,'MarkerSize',10);
plot3(x0(1),x0(2),y0,'go','lineWidth',2,'MarkerSize',10);
options = optimset('Display','iter','OutputFcn',@peaksOutputFcn);
x = fmincon(@peaksObj,x0,[],[],[],[],[],[],@peaksCon,options)
plot3(history(:,1),history(:,2),(-10)*ones(size(history,1)),'-r.','lineWidth',1,'MarkerSize',15)
plot3(history(:,1),history(:,2),history(:,3),'-r.','lineWidth',1,'MarkerSize',15)
plot3(history(end,1),history(end,2),-10,'r*','lineWidth',2,'MarkerSize',10)
plot3(history(end,1),history(end,2),history(end,3),'r*','lineWidth',2,'MarkerSize',10)
box on
end
function stop = peaksOutputFcn(x, optimValues,state)
stop =false;
% hold on;
% plot3(x(1),x(2),-10,'*');
record(x,optimValues.fval);
end
function []=record(x,y)
global history
history=[history;[x,y]]
end
function f = peaksObj(x)
%PEAKSOBJ casts PEAKS function to a form accepted by optimization solvers.
% PEAKSOBJ(X) calls PEAKS for use as an objective function for an
% optimization solver. X must conform to a M x 2 or N x 2 array to be
% valid input.
%
% Syntax
% f = peaksObj(x)
%
% Example
% x = [ -3:1:3; -3:1:3]
% f = peaksObj(x)
%
% See also peaks
% Check x size to pass data correctly to PEAKS
[m,n] = size(x);
if (m*n) < 2
error('peaksObj:inputMissing','Not enough inputs');
elseif (m*n) > 2 && (min(m,n) == 1) || (min(m,n) > 2)
error('peaksObj:inputError','Input must have dimension m x 2');
elseif n ~= 2
x = x';
end
% Objective function
f = peaks(x(:,1),x(:,2));
end
function [c,ceq] = peaksCon(x)
%PEAKSCON Constraint function for optimization with PEAKSOBJ
% PEAKSCON(X) is the constraint function for use with PEAKSOBJ. X is of
% size M x 2 or 2 x N.
%
% Sytnax
% [c,ceq] = peaksCon(x)
%
% See also peaksobj, peaks
% Check x size to pass data correctly to constraint definition
[m,n] = size(x);
if (m*n) < 2
error('peaksObj:inputMissing','Not enough inputs');
elseif (m*n) > 2 && (min(m,n) == 1) || (min(m,n) > 2)
error('peaksObj:inputError','Input must have dimension m x 2');
elseif n ~= 2
x = x';
end
% Set plot function to plot constraint boundary
try
mypref = 'peaksNonlinearPlot';
if ~ispref(mypref)
addpref(mypref,'doplot',true);
else
setpref(mypref,'doplot',true);
end
catch
end
% Define nonlinear equality constraint
ceq = [];
% Define nonlinear inequality constraint
% x1^2 + x^2 <= 3^2
c = x(:,1).^2 + x(:,2).^2 - 9;
% fmincon accepted input form is ceq <= 0
end边栏推荐
猜你喜欢

selenium和驱动安装

网络协议05 -网络层

In-depth understanding of multithreading (Part 1)

ES6 从入门到精通 # 15:生成器 Generator 的用法

arm-4-裸板开发

YOLOV5学习笔记(七)——训练自己数据集

【Infiltration tool】Browser data export tool

恭喜获奖得主 | 互动有礼获赠 Navicat Premium

KingbaseGIS Jin Cang database using manual (6.3. Geometric object creation function)

【集训DAY3】石油储备计划【树形DP】
随机推荐
go语言的并发原理(goroutine)
【集训DAY5】快速排序【模拟】【数学】
Wireshark经典实践和面试13点总结
关于服务治理
【Infiltration tool】Browser data export tool
nfs配置
Cmake 用法记录
什么是服务治理
十位时间戳转化成时间
Alibaba Cloud SMS Service Activation
JSP简介
【励志】名言警句
Redis 大 key 要如何处理?
ES6 Beginner to Mastery #15: Generator Usage
[Cloud native] Kubernetes orchestration tools
ALV报表总结2022.8.9
【集训DAY3】中位数
阿里云短信服务开通
61.【快速排序法详解】
redis分布式锁代码示例
