• Регистрация
mirmir124
mirmir124 0.00
н/д

Аппроксимация эмпирического распреде­ления функции

01.12.2019

Здравствуйте, пишу курсовую, застрял на аппроксимации функции, так как мои познания в matlab ограничены, то
обращаюсь на форум, нужна помощь с кодом, так же я не очень понимаю, как можно записать эмпирически заданную функцию в интеграле, чтобы оптимизировать целевую

Есть целевая функция, которую нужно оптимизировать и найти альфа, сигма и p :

http://www.cyberforum.ru/cgi-bin/latex.cgi?\Delta = \int_{0}^{12}(f1(x) - {b}_{1}(\alpha, \sigma, x))^2dx + \int_{0}^{12}(f2(x) - {b}_{2}(\alpha, \sigma, x))^2dx  -> min

Функция f1(x) представлена эмперически и имеет вид:

http://www.cyberforum.ru/cgi-bin/latex.cgi?{f}_{1}(x) = \begin{cases}<br />
 1000x \  ,x=(0;1]  \\ <br />
 25327x - 24237 \  ,x=(1;2]  \\ <br />
 -26237x +78711 \  ,x=(2;3]  \\ <br />
 53733x - 161199 \  ,x=(3;4]  \\ <br />
 4947x - 110055 \  ,x=(4;5]  \\ <br />
 -91967x + 554515 \  ,x=(5;6]  \\ <br />
 180445x - 1079957 \  ,x=(6;7]  \\ <br />
 1574691x - 10839679 \  ,x=(7;8]  \\ <br />
 -1755743x + 15803793 \  ,x=(8;9]  \\ <br />
 24629x - 219555 \  ,x=(9;10]  \\ <br />
 2563682x - 25610085 \  ,x=(10;11]  \\ <br />
 -2169961x + 26459988 \  ,x=(11;12]  \\ <br />
\end{cases}

Функция f2(x) представлена эмперически и имеет вид:

http://www.cyberforum.ru/cgi-bin/latex.cgi?{f}_{2}(x) = \begin{cases}<br />
 2007764x + 420456 \  ,x=(0;1]  \\ <br />
 -410067x + 1038287 \  ,x=(1;2]  \\ <br />
 -38465x + 295083 \  ,x=(2;3]  \\ <br />
 102522x - 127878 \  ,x=(3;4]  \\ <br />
 -157486x + 912154 \  ,x=(4;5]  \\ <br />
 -33360x + 291524 \  ,x=(5;6]  \\ <br />
 -12643x + 167222 \  ,x=(6;7]  \\ <br />
 -23318x + 241947 \  ,x=(7;8]  \\ <br />
 -55000x + 495403 \  ,x=(8;9]  \\ <br />
 2883x - 25544 \  ,x=(9;10]  \\ <br />
 30002x - 296734 \  ,x=(10;11]  \\ <br />
 264391x - 2875013 \  ,x=(11;12]  \\ <br />
\end{cases}


Функция http://www.cyberforum.ru/cgi-bin/latex.cgi?{b}(\alpha, \sigma, x) = \sum_{1}^{5}({p}_{i}*n({a}_{i},{\sigma}_{i},x))


При этом ф-ия http://www.cyberforum.ru/cgi-bin/latex.cgi?n({a},{\sigma},x) - это функция нормального распределения


По итогу http://www.cyberforum.ru/cgi-bin/latex.cgi?{b}(\alpha, \sigma, x)

Должна получиться в виде суммы 5 нормальных распределений.

Используется функция isqnonlin

Итоговые тройки (ответы) :
http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
(\alpha, \sigma, p) :

i = 1 -> (0,5;1,5;1000000)
i = 2 -> (2,9;1,2;5000)
i = 3 -> (5,1;3,6;600000)
i = 4 -> (8;0,7;17000000)
i = 5 -> (11;0,6;2000000

Теги

      01.12.2019

      Ответы

      • Artem
        Artem+290.00
        4.12.2019 10:14

        Привет!

        1. Разбей интеграл на сумму интегралов по пределам интегрирования. Т.о. у первого интеграла пределы будут от 0 до 1, а подинтегральная функция f1 = (1000х - b1)2 и т.д

        2. Целевая функция

        function F = myTarget(y)

         a = y(1:5) ; sigma = y(6:10) =;  p = y(11:15) ;

        n = @(x) 1./sigma/sqrt(2*pi).*exp(-(x-a).^2./(2*sigma));

         b1 = @(x) sum(p.*n(a,sigma,x);

         f1 = @(x) (1000x-b1)^2

         

        F1 = integral(f1,0,1)

        f2 = @(x) (25327x-24237- b1)^2)

        F2 = integral(f2,1,2)

        ........................

        F = F1+F2+.....

        end

        3. Это один из подходов. Код только надо довести до реализации. Успехов