Решите логнормальное уравнение для мю и сигмы при фиксированных значениях y и x в Matlab

У меня есть логнормальное уравнение:

y = 1 / (3,14*x*sig)*exp(-(log(x)-mu)^2/(2*sig^2))

и для фиксированной

у = а

х = б

Мне нужно найти значения мю и сиг. Я могу установить му в Matlab, как:

mu = [0 1 1,1 1,2...]

и найти все значения, соответствующие значениям сиг, но я не могу сделать это с помощью решения или подпрограмм. Любые идеи, пожалуйста???

Спасибо!

1 ответ

Решение

Вот подтверждение концепции для использования fzero численно искать sigma(x,y,mu) функция.

Если у вас есть x,y исправлено, вы можете установить

mu = 1; %or whatever
myfun = @(sig) y-1./(3.14*x*sig).*exp(-(log(x)-mu)^2./(2*sig.^2)); %x,y,mu from workspace

sigma = fzero(myfun,1);

Это решит уравнение

y-1/(3.14*x*sig)*exp(-(log(x)-mu)^2/(2*sig^2))==0

за sig начиная с sig==1 и вернуть его в sigma,

Вы можете обобщить это, чтобы получить функцию mu:

myfun2 = @(mu,sig) y-1./(3.14*x*sig).*exp(-(log(x)-mu).^2./(2*sig.^2));
sigmafun=@(mu) fzero(@(sig)myfun2(mu,sig),1);

затем sigmafun даст вам sigma для каждого значения mu Вы положили в это. Параметры x а также y предполагается установить перед первым объявлением анонимной функции.

Или вы можете получить действительно общие и определить

myfun3 = @(x,y,mu,sig) y-1./(3.14*x*sig).*exp(-(log(x)-mu).^2./(2*sig.^2));
sigmafun2 = @(x,y,mu) fzero(@(sig)myfun3(x,y,mu,sig),1);

Основное отличие здесь в том, что x а также y питаются в функции sigmafun2 каждый раз, чтобы они могли измениться. В более ранних случаях значения x а также y были зафиксированы в анонимных функциях во время их определения, т.е. когда мы выпустили myfun = @(sig)..., В зависимости от ваших потребностей вы можете узнать, что вы хотите использовать.

В качестве доказательства концепции я не проверял, насколько хорошо она себя ведет в реальной проблеме. Вы должны определенно иметь первоначальное представление о том, какие параметры вы ожидаете, так как будет много случаев, когда нет решения, и fzero вернет NaN,


Обновление Оливер Амундсен: итоги sig(mu) функция с x=100, y=0.001 выглядит так:

фигура

Другие вопросы по тегам