Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/74: Рейтинг темы: голосов - 74, средняя оценка - 4.77
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101

Свертка трехмерной плотности распределения вероятности.

04.02.2013, 11:54. Показов 15876. Ответов 163
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане.

Мне необходимо решить следующую задачу:

Мне известна трехмерная плотность распределения вероятностей (ПРВ):

https://www.cyberforum.ru/cgi-bin/latex.cgi?W({u}_{1},{u}_{2},{u}_{3})=1,353*\frac{{u}_{1}*{u}_{2}*{u}_{3}}{{\sigma}^{6}}*{exp}^{-\frac{1,394*\left({{u}_{1}}^{2}+{{u}_{3}}^{2} \right)+1,826*{{u}_{2}}^{2}}{2{\sigma}^{2}}}*{I}_{0}\left(-0,845*\frac{{u}_{1}*{u}_{2}}{{\sigma}^{2}}\right)*{I}_{0}\left(0,334*\frac{{u}_{1}*{u}_{3}}{{\sigma}^{2}}\right)*{I}_{0}\left(-0,845*\frac{{u}_{2}*{u}_{3}}{{\sigma}^{2}}\right)

Мне известны также выражения для https://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{1},{u}_{2},{u}_{3}. Они отличаются друг от друга временными моментами. Т.е. выражение для https://www.cyberforum.ru/cgi-bin/latex.cgi?{u} записывается для трех моментов времени https://www.cyberforum.ru/cgi-bin/latex.cgi?{t}_{1},{t}_{2},{t}_{3}. И мы исследуем зависимость этих трех отсчетов.

Так вот мне нужно перейти от трехмерной ПРВ к одномерной. Это можно сделать с помощью двух операций свертки. Например, с помощью первой свертки прийти к выражению вида https://www.cyberforum.ru/cgi-bin/latex.cgi?W({u}_{1},{u}_{2}), а с помощью второй к https://www.cyberforum.ru/cgi-bin/latex.cgi?W({u}_{1}). Я знаю, что в Матлабе есть функция https://www.cyberforum.ru/cgi-bin/latex.cgi?y = conv(x, h), но она легко используется для числовых последовательностей.

А вот как с помощью Матлаба свернуть нужное мне выражение я пока не смекаю. Подскажите пожалуйста, если у Вас есть мысли на эту тему.
Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2013, 11:54
Ответы с готовыми решениями:

График плотности вероятности
Вопрос такой. Есть файл в котором сохранены просто числа(случайные величины) вот и надо построить график распределения плотности...

График плотности распределения
Всем привет! У меня такой вопрос, допустим есть массив в котором находится 1000 различных знчений (некоторые из них повторяются), как...

Функция распределения по ПЛОТНОСТИ вероятности
Задача ввела в ступор.Строил функцию распределения лишь по дискретным рядам,по плотности вообще не знаю,подскажите как,если не затруднит. ...

163
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.03.2013, 19:47
Студворк — интернет-сервис помощи студентам
С суммой - надо понять как переменные функционально зависят друг от друга.

Не уверен, даст ли что-то увеличение числа точек
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 19:49  [ТС]
Смотри, я поставила

Matlab M
1
U3 = linspace(0.5e-15, 5000, 1000);
И в основном файле

Matlab M
1
2
 U1 = linspace(0,U3(i),1000);
U2 = linspace(0,U3(i)-U1(j),1000);
График конечно, нечитабельный. А вот площадь вообще красивая
L =
9.0274e-005

Добавлено через 1 минуту
Да, это не помогло...
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.03.2013, 19:56
И вообще с той таблицей неясно, что аргумент функции, ведь значения U3 повторяются, а значение ф-ции F(U1,U2,U3) будут разными...
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 19:59  [ТС]
Цитата Сообщение от Зосима Посмотреть сообщение
С суммой - надо понять как переменные функционально зависят друг от друга.
в общем, по формулам препода это выглядит так:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\hat{u3}=u1+u2+u3
В числителе функции идет https://www.cyberforum.ru/cgi-bin/latex.cgi?u1\cdot u2\cdot (\hat{u3}-u1-u2) и так далее.

А проверка:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\int_{0}^{\infty}{W}_{1}(\hat{u3})d\hat{u3}=1
0
06.03.2013, 20:00

Не по теме:

Поставила по 1000 точек каждой переменной и посчитала??! =-0 что у тебя за комп? Мой трактор бы месяц считал! :pardon:

0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 20:06  [ТС]
Цитата Сообщение от Зосима Посмотреть сообщение
Поставила по 1000 точек каждой переменной и посчитала??! =-0 что у тебя за комп?
Ноут у меня) Вот такой. Особой шустрости, кстати, за ним не наблюдала ))
Миниатюры
Свертка трехмерной плотности распределения вероятности.  
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 20:11  [ТС]
Может, ошибка в том, что я брала просто u3, а не u3 с шапочкой (т.е.сумму)..

А то, что первый интеграл должен браться именно по u1 (с пределами 0;u3 с шапочкой), а второй по u2 (с пределами 0;u3 с шапочкой-u1) а не наоборот, наверно, тоже важно..
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.03.2013, 20:20
Пробовать надо экспериментировать... но та таблица мне совсем не нравится

*эх, если б на работе мне не делали цефалофилию и было больше свободного времени
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 21:43  [ТС]
аналогично)) хоть отпуск бери...(это я о себе )
а как экспериментировать, надо еще догадаться. я вот логически понимаю, за что можно было б подергать, но на языке матлаба не смогаю(
а если таблица плохая, то вообще по моему посту в 19:59 можно что-то придумать? я ведь таблицу строила, как сама препода поняла. может, он и не то имел в виду

Добавлено через 1 час 14 минут
эх, все бы нипочем, но первоначальные сроки сдачи давно вышли..препод говорит, что самый крайний срок - 8 марта. а ничего не получается, хоть плачь
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.03.2013, 21:51
Мне кажется, там должно быт завязано с dU3 или вообще взять пределы тупо от 0 до 10 во внутренних интегралах!

Не по теме:

Эх, отпуск это здорово! :) Жду лета, чтоб съездить к теше на блины в Дзержинск

Кстати, можно нескромный вопрос интимного характера?
Кликните здесь для просмотра всего текста
почему интеграл свертки должен равняться 1? О! А еще свертка это произведение спектров! *правда у нас какая-то хитрая свертка - интеграл от одной ф-ции, а должно быть от произведения:
https://www.cyberforum.ru/cgi-bin/latex.cgi?F(x) = \int_{-\infty}^x f(t)*f(x-t) dt или как-то так...
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 22:08  [ТС]
О, Дзержинск) прямо по соседству с НН)

единице всегда должна равняться ПРВ, а с помощью свертки мы ее и находим. это непреложная истина для моего рук-ля, по другому никак. а вот вид свертки был такой в первоначальном варианте U1(i).*(U2(j)-U1(i)).*(U3-U2(j)). если у нас получится единица с той формулой, я буду не против) но и последняя формула от препода правильная по его мнению.

Добавлено через 5 минут
Не поверишь!!!!!!!!!!!!!!!!!!!!!!!!
Единица получилась!!!!!!!!!!!!!!!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function W = prosto(U3)
 
sigma = 1;
%tau1 = 0.028537;
%tau2 = 0.102558;
%tau3 = 0.220953;
%Dtau = 1/(tau1*tau2*tau3);
 
W = zeros(size(U3));
for i = 1:length(U3)
    U1 = linspace(0,10,1000);
    F = zeros(size(U1));
    for j = 1:length(U1)
        U2 = linspace(0,10,1000);
        fm = (U1(j).*U2.*U3(i))/(sigma^6).*exp( -( (U1(j)).^2 + (U3(i)).^2 + (U2).^2 )/(2*sigma^2) );
        FdU2 = fm;
        % считаем интеграл по dU3
        F(j) = trapz(U2, FdU2);
    end
    % считаем bнтеграл по dU2
    W(i) = trapz(U1, F);
end
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
clear all
clc
U3 = linspace(0.5e-15, 10, 1000);
W = prosto(U3);
W(isnan(W))=0;
h = U3(2)-U3(1);
L = sum(W*h);
hPlot = plot(U3, W, 'r');
set( hPlot, 'LineWidth', 3 );
title('W(u_3)','fontsize',20)
xlabel('u_3','fontsize',20)
ylabel('W','fontsize',20)
grid on
Добавлено через 1 минуту
L =

1.0000
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.03.2013, 22:40
Так и знал! все эти извращения с пределами уменьшают диапазон, поэтому мы не захватываем весь "горбик" прв второй и третьей размерности
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 22:43  [ТС]
Только вот со сложным вариантом (имею в виду мою длиннющую свертку) надо все равно помучиться. График-то какой-то неадекватный выходит, как ни крути. Но такое продвижение уже не может не радовать. И как это у тебя так получается в голове построить картину того, что творится в коде. Образное мышление на высоте)
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
06.03.2013, 23:00  [ТС]
Да уж, с моей функцией придется попотеть. Пока не выходит красоты.
Например, был график https://www.cyberforum.ru/atta... 1362317066 в посте от 03.03.2013, 17:24, а после замены интервалов на константы получилось:
Миниатюры
Свертка трехмерной плотности распределения вероятности.  
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
07.03.2013, 11:57  [ТС]
И график портится, и площадь с единицей никак не соприкасается(

Добавлено через 12 часов 56 минут
Нда. Если брать независимые переменные, тогда корреляционных связей не будет, функций Бесселя в том числе. И площадб получается равной 1. Но если вводить функц.преобразование, ф-ции Бесселя, коф-ты корреляции, все ломается.
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
07.03.2013, 16:55  [ТС]
Вот простецкий пример с Релеем после ФНЧ.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function W = funreley(U3)
 
sigma = 1;
tau1 = 0.102558;
tau2 = 0.220953;
tau3 = 0.285372;
Dtau = 1/(tau1*tau2*tau3);
 
W = zeros(size(U3));
for i = 1:length(U3)
    U1 = linspace(0.5e-15,5,100);
    F = zeros(size(U1));
    for j = 1:length(U1)
        U2 = linspace(0.5e-15,5,100);
        fm = ((U1(j)./tau1).*((U2-U1(j))./tau2).*((U3(i)-U2)./tau3))/(sigma^6).*exp( -( (U1(j)./tau1).^2 + ((U3(i)-U2)./tau3).^2 + ((U2-U1(j))./tau2).^2 )/(2*sigma^2) );
        FdU2 = fm.*Dtau.*(U2>U1(j)).*(U3(i)>U2);
        % считаем интеграл по dU3
        F(j) = trapz(U2, FdU2);
    end
    % считаем bнтеграл по dU2
    W(i) = trapz(U1, F);
end
Построение графика:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
clear all
clc
U3 = linspace(0.5e-15, 2, 100);
W = funreley(U3);
W(isnan(W))=0;
h = U3(2)-U3(1);
L = sum(W*h);
hPlot = plot(U3, W, 'r');
set( hPlot, 'LineWidth', 3 );
title('W(u_3)','fontsize',20)
xlabel('u_3','fontsize',20)
ylabel('W','fontsize',20)
grid on
После квадратора:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
clear all
clc
U3 = linspace(0.5e-15, 3, 100);
K = funreley(sqrt(U3))./(2*sqrt(U3));
%W(isnan(W))=0;
h = U3(2)-U3(1);
L = sum(K*h);
hPlot = plot(U3, K, 'r');
set( hPlot, 'LineWidth', 3 );
title('W(u_3)','fontsize',20)
xlabel('u_3','fontsize',20)
ylabel('W','fontsize',20)
grid on
После сумматора:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clear all
clc
O1 = linspace(0.5e-15, 5, 100);
Z = zeros(size(O1));
for i = 1:length(O1)
    U3 = linspace(0.5e-15, 5, 100);
    U3 = sqrt(U3);
    Q1 = sqrt(O1(i)-U3);
    z = funreley(U3)./(2*U3).*funreley(Q1)./(2*Q1);
    z(isnan(z)) = 0; % обнуляем NaNы
    Z(i) = trapz( U3, z );
end
h = Q1(2)-Q1(1);
L = sum(Z*h);
hPlot = plot(O1, Z, 'r');
set( hPlot, 'LineWidth', 3 );
xlabel('w_1','fontsize',20)
ylabel('W(w_1)','fontsize',20)
grid on
Миниатюры
Свертка трехмерной плотности распределения вероятности.   Свертка трехмерной плотности распределения вероятности.   Свертка трехмерной плотности распределения вероятности.  

0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
07.03.2013, 23:20  [ТС]
Площади в первых двух графика 0.99, в третьем -0.71.

Добавлено через 5 часов 24 минуты
В последнем случае - после сумматора, есть проблемы. Во-первых, площадь получается отрицательной. Во-вторых, она близка к единице только при диапазоне от 0 до 5 и кол-ве точек 200. В других случая площадь меньше. Не пойму, почему((

Добавлено через 58 минут
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clear all
clc
O1 = linspace(0.5e-15, 5, 100);
Z = zeros(size(O1));
for i = 1:length(O1)
    U3 = linspace(0.5e-15, 5, 100);
    U3 = sqrt(U3);
    Q1 = sqrt(O1(i)-U3);
    z = funreley(U3)./(2*abs(U3)).*funreley(Q1)./(2*abs(Q1));
    z(isnan(z)) = 0; % обнуляем NaNы
    Z(i) = trapz( U3, z );
end
Q1 = Q1.^2;
V = Z.*2.*sqrt(Q1);
h = Q1(2)-Q1(1);
L = -sum(V*h);
hPlot = plot(O1, V, 'r');
set( hPlot, 'LineWidth', 3 );
xlabel('w_1','fontsize',20)
ylabel('W(w_1)','fontsize',20)
grid on
а вот код для процесса после блока извлечения квадратного корня. первая часть кода - та же, что и после сумматора. добавлены строчки 13,14. Суть преобразования состоит в том, что в ПРВ процесса после сумматора зависимую переменную нужно заменить на ее в квадрате. Например w=q^2. И еще умножить на якобиан перехода 2*q. Использованные буквенные обозначения взяты просто для примера.

По моему, код я составила неверно. По крайней мере, площадь под графиком 1 не равна.
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
08.03.2013, 00:44
Заяц, кажись в последней программе в строках 13-15 нужно писать не Q1, а O1 ну или sqrt(O1) на худой конец. Иначе в твоем варианте Q1 равно sqrt( O1(end)-sqrt(U3) )
Возможно еще нужно поменять местами строки 7 и 8, чтобы получилось:
https://www.cyberforum.ru/cgi-bin/latex.cgi?Q = \sqrt{ O_i - U3 }, а не https://www.cyberforum.ru/cgi-bin/latex.cgi? Q = \sqrt{O_i - \sqrt{U3} }

И еше мне не очень нравится метод прямоугольников L = sum(V*h), ведь метод трапеций L = trapz(O1, V) точнее
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
08.03.2013, 09:49  [ТС]
Строки 7 и 8 все-таки правильно будет оставить на месте, потому что после квадратора-то выходит u3 под корнем. и после сумматора оно так и остается под корнем)
Насчет O1, попробую, спасибо! И метод интегрирования сменю

Добавлено через 1 час 0 минут
Меня очень сильно смущает, что при изменении диапазона и шага, площадь меняется в разы
0
 Аватар для dobryasha
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 101
08.03.2013, 20:42  [ТС]
Вот проработанная схема:


И вывод формул для одномерных ПРВ:
PRV_protsessa.zip

Для точек 3,4,5,6 - все получается, а с 7-й - проблемы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2013, 20:42

Построить график плотности распределения вероятности
Помогите пожалуйста! Плотность вероятности непрерывной случайной величины Х задается формулой: f(x)= 0 при х больше либо равно 1 ...

Построить график плотности распределения вероятности
Дана функция плотности вероятности { −1, если x<−1 ; { 0, если x=−1 ; { (exp(−x ))/2, если -1<x<10 ; { x^2−tg(...

Определить закон распределения для заданной плотности вероятности
Доброго времени суток! Есть такая функция плотности: f(x)=Ae^{-3x^2+18x+2} Я определил, что A=e^{-29}\sqrt{\frac{3}{\pi}}. Но вот с...

Найти функцию плотности распределения вероятности случайной величины
Требуется: 1) найти функцию плотности распределения вероятности f{x) случайной величины X и построить ее график; 2)вычислить математическое...

Составить программу для графического отображения радиального и углового распределения плотности вероятности
Составить программу для графического отображения радиального и углового распределения плотности вероятности местонахождения электрона в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
160
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru