How to plot rastrigin function in matlab
Show older comments
I'm trying to plot rastrigin function this way
clear; clc; close all;
limits = repmat([-5 5], 2, 1);
[X,Y] = meshgrid(linspace(limits(1,1),limits(1,2),100),...
linspace(limits(2,1),limits(2,2),100));
Z = reshape(rastrigin([X(:)'; Y(:)']), 100, 100);
surf(X,Y,Z);
axis([-5 5 -5 5 0 90]);
shading interp
rastrigin.m
function [y] = rastrigin(x)
d = length(x);
sq = x.^2;
y = 10*d + sum(sq - 10*cos(2*pi*x));
end
But I'm getting empty figure
1 Comment
Mahmoud ABURUB
on 22 Feb 2020
Edited: Mahmoud ABURUB
on 22 Feb 2020
Rastrigin's Function has only one global minima at point [0,0]
the coden for ploting the function in 3D (X,Y,Z) is:
function [y]=rastringis(x1,x2)
dx1=length(x1);
dx2=length(x2);
for i=1:dx1
for j=1:dx2
y(i,j)=(20+x1(i).^2+x2(j).^2)-10*(cos(2*pi*x1(i))+cos(2*pi*x2(j)));
end
end
end
x1=[-5:0.1:5];
x2=[-5:0.1:5];
y=rastringis(x1,x2)
meshc(x1,x2,y);
the figure is attached to this message.
Accepted Answer
More Answers (1)
click on step button till you see a figure (till 6-7 line ) u will get the figure
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!