Filter löschen
Filter löschen

How to plot rastrigin function in matlab

11 Ansichten (letzte 30 Tage)
Atinesh Singh
Atinesh Singh am 13 Nov. 2016
Bearbeitet: PRIYANSHI am 23 Jan. 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]);
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 Kommentar
Mahmoud ABURUB
Mahmoud ABURUB am 22 Feb. 2020
Bearbeitet: Mahmoud ABURUB am 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

dpb
dpb am 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 Kommentare
Atinesh Singh
Atinesh Singh am 13 Nov. 2016
I didn't get you
dpb
dpb am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

PRIYANSHI
PRIYANSHI am 23 Jan. 2023
Bearbeitet: PRIYANSHI am 23 Jan. 2023
click on step button till you see a figure (till 6-7 line ) u will get the figure

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by