How do I get some sampling points from a 4 dimentional function at LHS(Latin Hypercube Sampling)?

function scores = rosenbrockfcn(x)
scores = 0;
n = size(x, 2);
assert(n >= 1, 'Given input X cannot be empty');
a = 1;
b = 100;
for i = 1 : (n-1)
scores = scores + (b * ((x(:, i+1) - (x(:, i).^2)) .^ 2)) + ((a - x(:, i)) .^ 2);
end
This is Rosenbrock function.
I want to get some samples from a 4 dimentional rosenbrock function.
like [x1 x2 x3 x4] and f(x)
Boundary conditions are [-10 10]
Please let me know. Thank you!

回答(1 个)

Hi,
To obtain Latin Hypercube Sampling (LHS) points from a 4-dimensional Rosenbrock function, you can use the "lhsdesign" function in MATLAB. The function as used below,
X = lhsdesign(n,p)
returns a Latin hypercube sample matrix of size n-by-p. For each column of 'X', the 'n' values are randomly distributed with one from each interval (0,1/n), (1/n,2/n), ..., (1 - 1/n,1), and randomly permuted.
You can generate LHS samples and evaluate the Rosenbrock function at sampled points as follows:
numSamples = 10; % Assuming there are 10 sample points
numDims = 4; % Number of dimensions
% Generate Latin Hypercube Samples in the range [0, 1]
lhsSamples = lhsdesign(numSamples, numDims);
% Scale samples to the range [-10, 10]
lowerBound = -10;
upperBound = 10;
scaledPoints = lowerBound + (upperBound - lowerBound) * lhsSamples; % Transform [0, 1] to [-10, 10]
% Evaluate the Rosenbrock function at the LHS points
scores = rosenbrockfcn(scaledPoints);
% Combine the sampled points and corresponding function values if you want
% better visibility
sampledData = [scaledPoints, scores];
I hope this will resolve your query.
Regards,
Zuber

类别

帮助中心File Exchange 中查找有关 Industrial Statistics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by