# How to plot rastrigin function in matlab

61 views (last 30 days)
Atinesh Singh on 13 Nov 2016
Edited: PRIYANSHI on 23 Jan 2023 at 5:58
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]);
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
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.

dpb on 13 Nov 2016
Your scaling seems to be out of whack--adding 10+length(x) is creating a Z of
>> [min(Z(:)) max(Z(:))]
ans =
1.0e+03 *
0.9810 1.0604
>>
Hence your axis command puts the Z axis range quite a long distance below where the data values are.
It appears from the functional definition, the offset factor you're looking for would be 20; 2X the scale factor of the cosine term. If I do that and then
zlim([0 90])
get an interesting figure, indeed. Hadn't heard of the rastrigin function...
##### 2 CommentsShowHide 1 older comment
dpb on 13 Nov 2016
Did you look at min/max of your Z array???? Apparently not...
Try removing the axis command entirely and see what happens. The combination of those should result in enlightenment.

PRIYANSHI on 23 Jan 2023 at 5:58
Edited: PRIYANSHI on 23 Jan 2023 at 5:58
click on step button till you see a figure (till 6-7 line ) u will get the figure

### Categories

Find more on Legend 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!

Translated by