Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.9 kB
1
Indexable
% Rüzgar hızı veri seti
windSpeedData = [5.8, 6.2, 6.4, 5.1, 7.2, 8.5, 9.1, 6.9, 8.2, 7.6, 8.9, 6.7, 6.5, 7.8, 6.3, 8.7, 7.1, 7.9, 6.8, 8.4];

% Weibull dağılımının parametrelerini hesaplama
shapeParameter = 0;
scaleParameter = 0;
meanWindSpeed = mean(windSpeedData);
standardDeviation = std(windSpeedData);

options = optimset('Display', 'off');
[params, ~] = fminsearch(@(params) weibullError(params, windSpeedData), [shapeParameter, scaleParameter], options);

shapeParameter = params(1);
scaleParameter = params(2);

% Weibull dağılımı grafiğini çizme
x = 0:0.1:20;
y = (shapeParameter / scaleParameter) .* (x ./ scaleParameter).^(shapeParameter - 1) .* exp(- (x ./ scaleParameter).^shapeParameter);
plot(x, y, 'r-', 'LineWidth', 2);
hold on;
histogram(windSpeedData, 'Normalization', 'probability', 'FaceColor', 'blue');
xlabel('Rüzgar Hızı (m/s)');
ylabel('Olasılık Yoğunluğu');
legend('Weibull Dağılımı', 'Rüzgar Hızı Veri Seti');
title('Rüzgar Hızı Dağılımı');

% Weibull dağılımı uyumunu değerlendirme
weibullFit = wblpdf(x, scaleParameter, shapeParameter);
dataFit = histcounts(windSpeedData, 'Normalization', 'probability');
fitError = sum((dataFit - weibullFit).^2);

fprintf('Weibull Dağılımı Parametreleri:\n');
fprintf('Shape Parametre: %.2f\n', shapeParameter);
fprintf('Scale Parametre: %.2f\n', scaleParameter);
fprintf('Ortalama Rüzgar Hızı: %.2f m/s\n', meanWindSpeed);
fprintf('Standart Sapma: %.2f\n', standardDeviation);
fprintf('Uygunluk Hatası: %.4f\n', fitError);

% Weibull dağılımı uygunluk hatasını hesaplama
function error = weibullError(params, data)
    shape = params(1);
    scale = params(2);
    weibullFit = wblpdf(data, scale, shape);
    dataFit = histcounts(data, 'Normalization', 'probability');
    error = sum((dataFit - weibullFit).^2);
end