2017-02-06 21 views
-1

У меня есть уравнение в 4 переменных x, v, eta (e), beta (b). Я хочу подставить x и v различными значениями и создать уравнение, умножив все полученные термины. Image of Code in sympyРешение уравнения MLE (Максимальное значение правдоподобия) с использованием SYMPY

Использование SYMPY, Как решить полученное уравнение по двум переменным (e и b), взяв log и дифференцируя по e, а затем b? Я беру «ln», чтобы мультипликативные члены упрощались до аддитивных членов и, следовательно, экспоненциальные члены исключались. Но этого не происходит. Он просто пишет журнал слово перед, но не расширяется, используя свойство пер (тп) = Ln (т) + п (п)

Далее следует вывод в консоли:

Output in console when I run code shown in previous image

+0

Пожалуйста, предоставьте код в формате, который можно скопировать. В то же время попробуйте вызвать 'sp.expand_log' с опцией' force = True' – Stelios

+0

@Stelios, я все еще не могу устранить экспоненциальные термины после force = true в expand_log Код PFB: от sympy.solvers .pde импорт pdsolve из SymPy импорта функции, дифференциала, уравнение из sympy.abc импорта х, у, г, у из SymPy импорта * # из SymPy импорта IndexedBase, IDX, символы, оо импорт SymPy в зр # импорт NumPy # из mpmath импорта * # из sympy.tensor.array импорта массива е, б, а = sp.symbols ('Е.Б.') Продолжение ..... –

+0

х = sp.IndexedBase ('х') V = sp.IndexedBase ('v') I, J = sp.symbols ('IJ', ЦБС = IDX) Защиту F (х, у, е , b): y = ((x + v)/e) ** (b-1)) * (sp.exp ((v/e) ** b - ((x + v)/e) ** б)) возвращение у # # п = 0 для я в диапазоне (0,6): х = х [г] .subs (х [I], (2,3,4, 5,4,1)) v = v [i] .subs (v [i], (1,2,3,4,5,6)) o = sp.ln (f (x [i ], v [i], e, b)) n + = o pri нт (п) Защиты т (е, б): м = sp.expand_log (sp.ln (п)) возврата м печать (т (е, б)) уравнение = (sp.diff (п, е), sp.diff (п, б)) печати (эквалайзеры) печать (sp.solve (эквалайзеры)) –

ответ

0

Вам может потребоваться установить ваши различные символы как положительные, например x = symbols('x', positive=True). Тождества, такие как log(x*y) == log(x) + log(y) и log(exp(x)) == x, не являются истинными вообще, но они верны, когда переменные являются положительными.

 Смежные вопросы

  • Нет связанных вопросов^_^