Аналитическое решение уравнения, включающее функцию ошибки в максимумах - PullRequest
0 голосов
/ 12 апреля 2019

Максима, похоже, не предлагает аналитического решения этого уравнения, которое включает в себя функцию ошибки.Независимая переменная здесь - это «p», а зависимая переменная, для которой нужно найти решение, - это «x».

см. Иллюстрацию уравнения по ссылке

(%i3)   solveexplicit:true$ ratprint:false$ fpprintprec:6$
(%i4)   eqn: (sqrt(%pi)*(25*2^(3/2)*p-25*sqrt(2))*erf(1/(25*2^(3/2)*x))*x+1)/(25*p) = 0.04;
(%i5)   solve (eqn, x);
(%o5)   []
(%i6)   eqn, [p=2,x=0.00532014],numer;
(%o6)   0.04=0.04

Любая помощь или указание в правильном направлении приветствуется.

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Да, решать могут только полиномиалы.Я использовал последовательное расширение для малых значений x, и точность достаточно хорошая.

(%i11)  seriesE: 1$  
        termE: erf(x)$  
        for p: 1 unless p > 3 do  
                  (termE: diff (termE, x)/p,   
                   seriesE: seriesE + subst (x=0, termE)*x^p)$  
        seriesE;  

(%o11)  -(2*x^3)/(3*sqrt(%pi))+(2*x)/sqrt(%pi)+1  

Однако «Выражение длиннее, чем разрешено параметром конфигурации!»

1 голос
/ 13 апреля 2019

Насколько я знаю, Maxima не может решать уравнения, содержащие erf.Вы можете получить числовой результат через find_root:

(%i5) find_root (eqn, x, 0.001, 0.999), p=2;
(%o5)               0.005320136894034347

Что касается символических решений, я немного поработал с уравнением.Можно получить его в виде erf(something/x)*x = otherstuff или, что то же самое, erf(y) = somethingelse*y, где y = something/x и somethingelse = otherstuff/something, если я не ошибаюсь.Я ничего не знаю, в частности, об уравнениях этой формы, но, возможно, вы сможете что-то найти.

...