首页 > 解决方案 > 使用 sagemath 求解方程

问题描述

我是 SageMath 的新手,我试图了解 Sage 可以提供解决方案的问题有多复杂。所以我试着看看 Sage 是否可以解决可识别性问题。如果我们有一个正态模型,则已知该模型是可识别的,这意味着参数空间的不同值会导致似然函数的不同值

现在我试着写一段代码,看看 Sage 能否给我正确的答案。按照维基百科的第一个例子,我写道:

var('x, mu1, mu2, sigma1, sigma2')
assume(sigma1>0)
assume(sigma2>0)
solve((1/sigma1^2)*(x-mu1)^2 + log(sigma1)==(1/sigma2^2)*(x-mu2)^2+log(sigma2), mu1, sigma1)

哪个返回我[]。我究竟做错了什么?或者Sage不能解决这些问题?我相信我的错误在于声明中,定义了多个变量,因为如果我写

var('x, mu1, mu2, sigma1, sigma2')
assume(sigma1>0)
assume(sigma2>0)
solve((1/sigma1^2)*(x-mu1)^2 + log(sigma1)==(1/sigma2^2)*(x-mu2)^2+log(sigma2), sigma1)

我得到:

[sigma1^2 == -(mu1^2*sigma2^2 - 2*mu1*sigma2^2*x + sigma2^2*x^2)/(sigma2^2*log(sigma1) - sigma2^2*log(sigma2) - mu2^2 + 2*mu2*x - x^2)]

谢谢!

标签: equationsageequation-solving

解决方案


推荐阅读