Square of 20 random number sum up to 1

2 views (last 30 days)
shawin
shawin on 6 Sep 2018
Edited: Dimitris Kalogiros on 6 Sep 2018
The code below generate 20random number which their sum up to 1. r = rand(1, 20); % Start with 20 random numbers. r = r / sum(r) % Normalize so the sum is 1. theSum = sum(r) % Check to make sure. Should be 1
How we can generates 20 random number in which their squares are sum up to 1.

Answers (2)

Dimitris Kalogiros
Dimitris Kalogiros on 6 Sep 2018
Edited: Dimitris Kalogiros on 6 Sep 2018
clear ; clc;
N=20;
r=rand(1,N);
normFactor=sqrt(sum(r.^2));
r=r/normFactor;
figure;
plot(r,'bo');
zoom on; grid on;
xlabel('index'); ylabel('random number');
S=sum(r.^2);
fprintf('sum of square random numbers : %f \n', S);
If you run this script :

Torsten
Torsten on 6 Sep 2018
r = r / sqrt(sum(r.^2))
Best wishes
Torsten.

Categories

Find more on Creating and Concatenating Matrices 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!