Uniformly distributed random variables

4 visualizaciones (últimos 30 días)
Anand Kumar
Anand Kumar el 5 de Abr. de 2021
Comentada: Anand Kumar el 5 de Abr. de 2021
Iam stuck in a part of the following question-
Plot the distribution of two resistors in a parallel connection assuming that they each have measured values, which vary uniformly about their nominal values by ±5%
I have approached this problem in the following way -
x = zeros(10000,1) ;
R1 = rand(1,1) ;
R2 = rand(1,1) ;
for i = 1:10000
x(i,1) = (R1*R2)/(R1+R2) ;
end
histogram(x,'normalization','pdf')
RIght now I dont have the idea about how to adjust the nominal values in the rand function . Please help :)
  1 comentario
the cyclist
the cyclist el 5 de Abr. de 2021
I edited your code using the CODE button in the toolbar, and run it, show in your plot.

Iniciar sesión para comentar.

Respuesta aceptada

Chad Greene
Chad Greene el 5 de Abr. de 2021
Ah, this is a fun question, because the concept it's getting at is quite common across science and engineering.
The process of manufacturing resistors isn't perfect, so a 100 Ohm resistor might actually have a value anywhere between 95 and 105 Ohms. To make a uniform distribution of values between 95 and 105 Ohms, you could use the rand function, which creates values between 0 and 1. This means you'll want to multiply rand by 2 times the full spread, and center it so half the values are less than zero and half the values are greater than zero.
percent_error = 5;
NominalResistance = 100;
ErrorDistribution = 2*(percent_error/100)*NominalResistance*(rand(1000,1)-0.5);
R = NominalResistance + ErrorDistribution;
histogram(R)
  2 comentarios
Chad Greene
Chad Greene el 5 de Abr. de 2021
Hint: the next-level solution, however would use randn instead of rand, because errors are most likely gaussian rather than uniform distribution. I'd consider using randn and thinking about how to scale it accordingly to result in +/-5% error.
Anand Kumar
Anand Kumar el 5 de Abr. de 2021
Thanks Chad for the explanation.

Iniciar sesión para comentar.

Más respuestas (2)

David Hill
David Hill el 5 de Abr. de 2021
nomR1=1000;
nomR2=2000;
R1=nomR1*(.05*(2*rand(1,1e4)-1)+1);
R2=nomR2*(.05*(2*rand(1,1e4)-1)+1);
x=(R1.*R2)./(R1+R2);
  2 comentarios
the cyclist
the cyclist el 5 de Abr. de 2021
@Anand Kumar, my advice to you would be to try to solve your homework yourself with the hints I gave, before blindly copying this solution. That's the way to learn.
Anand Kumar
Anand Kumar el 5 de Abr. de 2021
Thank you David. @the cyclist Thanks for your advice , I won't copy.

Iniciar sesión para comentar.


the cyclist
the cyclist el 5 de Abr. de 2021
The main reason your output looks like this is that you are only generating ONE random value for each resistor -- and then recalculating x over and over again, with those values.
So, you need to change your code so that you generate a new random value for each value of x. (Check out the documentation on rand to see how to generate many values at once.)
You can generate a uniform random value with mean m and width w by doing
m = 37;
w = 2;
R1 = m + w*(rand(1,1) - 0.5)
R1 = 37.8963
  1 comentario
Anand Kumar
Anand Kumar el 5 de Abr. de 2021
Yes I got the point . Thank you for the explanation :)

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by