Я пытаюсь разместить распределенные случайные числа Вейбулла в секторе круга.
Я сгенерировал случайное число, а затем распределил его по распределению Вейбулла. Теперь я хочу использовать эти распределенные по Вейбуллу случайные числа.
RadarSpace GetWeibullClutter()
{
Random _randomNumberGenerator = new Random();
Weibull myweibull = new Weibull(3,2,_randomNumberGenerator);
int n = 50; // number of clutter elements
var maxRange = _detectionModel.MaximumRange;
var centreX = 0; // Centre of the field of view -- X coordinates
var centreY = 0; // Centre of the field of view -- Y coordinates
var minimumAngle = Math.PI / 4; // _detectionModel.MinimumPhi;
var maximumAngle = (3 * Math.PI) / 4; // _detectionModel.MaximumPhir;
var theta = (maximumAngle - minimumAngle) * myweibull + minimumAngle;
var r = maxRange * Math.Sqrt(_randomNumberGenerator.Next(n));
var x = centreX + r * Math.Cos(theta);
var y = centreY + r * Math.Sin(theta);
Я хочу, чтобы распределенное случайное число Вейбулла умножалось на var theta
, но оно скорее говорит
оператор «*» не может применяться к операндам типа «double» и «weibull»
обновленный код
RadarSpace GetWeibullClutter()
{
Random _randomNumberGenerator = new Random();
Weibull myweibull = new Weibull(3,2,_randomNumberGenerator);
int n = 50; // number of clutter elements
var maxRange = _detectionModel.MaximumRange;
var centreX = 0; // Centre of the field of view -- X coordinates
var centreY = 0; // Centre of the field of view -- Y coordinates
var minimumAngle = Math.PI / 4; // _detectionModel.MinimumPhi;
var maximumAngle = (3 * Math.PI) / 4; // _detectionModel.MaximumPhir;
var theta = 0.0;
var r = 0.0;
var randomNumbers = new double[n];
myweibull.Samples(randomNumbers);
for (int i = 0; i < n; i++)
{
theta = (maximumAngle - minimumAngle) * randomNumbers[i] + minimumAngle;
r = maxRange * Math.Sqrt(randomNumbers[i]);
}
//var theta = (maximumAngle - minimumAngle) * myweibull.Sample() + minimumAngle;
//var r = maxRange * Math.Sqrt(_randomNumberGenerator.Next(n));
var x = centreX + r * Math.Cos(theta);
var y = centreY + r * Math.Sin(theta);
Weibull
? Math.NET Числа? - person Sentry   schedule 31.01.2019var time = (maximumAngle - minimumAngle) * myweibull.RandomSource.NextDouble() + minimumAngle;
, но не уверен. подскажите пожалуйста правильный путь или нет? - person Muhammad Shaheer Munir   schedule 31.01.2019time
иr
? Являются ли они независимыми переменными? Они оба распределены по Вейбуллу? С теми же параметрами? - person Sentry   schedule 31.01.2019