我试图在Matlab中绘制一个函数,但我得到的只是一条直线。
我使用的代码是:
De = 6.22238*1e-5;
alpha = 3.0662*1e5;
re = 2.666;
r = -1:1/100:5;
V = De * (1-exp(alpha*(re-r))).^2
plot(r,V);
但我得到的只是一条直线。情节应该是这样的:
这些数字是不是太小了,所以matlab就把所有的东西都舍弃了?
请帮帮我!
我必须在给定的数据集上使用四个分量来训练高斯混合模型。该装置是三维的,包含300个样本。
问题是,我不能使用日志似然来检查收敛性,因为它是-Inf。这是在计算责任公式中的高斯值时得到的四舍五入零值的结果(参见E-步骤)。
到目前为止,你能告诉我我对EM算法的实现是否正确吗?以及如何解释四舍五入的零值问题?
下面是EM算法的实现(一次迭代):
首先,我使用初始化了,即组件的均值和协方差:
load('data1.mat');
X = Data'; % 300x3 data set
D = size(X,2); % dimension
N = size(X,1); % n
我想评估以下公式:
c = exp{x}*erfc{y}
(请参阅下面代码中x和y的定义。)
问题是x和y变得很大,我得到了非常大的exp{x}值和非常小的erfc(y)值。
import numpy as np
import scipy as sci
k = 5.7e-3
D = 1.53e-8
R = 1.5e-5
r = 1e-6
t = np.linspace(0.0,12,10)
x = (r/R) + (D/(R*R) - k)*t
y = (r/(2*np.sqrt(D*t))) + np.sqrt(D*t)/R
exp_x = np.exp(x)
erfc_y = s
我从一个我正在做的项目中切下了这段VB6:
Public Function C_Ln(c As ComplexNumber) As ComplexNumber
Set C_Ln = toComplex(Log(C_Abs(c)), Atan2(c.Imag, c.Real))
End Function
VB6 Log()函数是基数-e。我想编写一些版本来实现基数2、基数10和基数n。我该从哪里开始呢?