# How to plot rastrigin function in matlab

43 visualizaciones (últimos 30 días)
Atinesh Singh el 13 de Nov. de 2016
Editada: PRIYANSHI el 23 de En. de 2023
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
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Mahmoud ABURUB el 22 de Feb. de 2020
Editada: Mahmoud ABURUB el 22 de Feb. de 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.

Iniciar sesión para comentar.

dpb el 13 de Nov. de 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 comentariosMostrar NingunoOcultar Ninguno
Atinesh Singh el 13 de Nov. de 2016
I didn't get you
dpb el 13 de Nov. de 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.

Iniciar sesión para comentar.

### Más respuestas (1)

PRIYANSHI el 23 de En. de 2023
Editada: PRIYANSHI el 23 de En. de 2023
click on step button till you see a figure (till 6-7 line ) u will get the figure
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

Más información sobre Line Plots en Help Center y File Exchange.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by