# Uniformly distributed random variables

7 次查看（过去 30 天）
Anand Kumar2021-4-5

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') ##### 1 个评论显示隐藏 无
the cyclist 2021-4-5
I edited your code using the CODE button in the toolbar, and run it, show in your plot.

### 采纳的回答

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 个评论显示隐藏 1更早的评论
Anand Kumar 2021-4-5

### 更多回答（2 个）

David Hill 2021-4-5
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 个评论显示隐藏 1更早的评论
Anand Kumar 2021-4-5
Thank you David. @the cyclist Thanks for your advice , I won't copy.

the cyclist 2021-4-5
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 个评论显示隐藏 无
Anand Kumar 2021-4-5
Yes I got the point . Thank you for the explanation :)

### Community Treasure Hunt

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

Start Hunting!