How to plot rastrigin function in matlab

Illustration
Gracesmith97 - 2020-03-04T14:39:11+00:00
Question: How to plot rastrigin function in matlab

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

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

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...


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!