【发布时间】:2023-03-05 02:40:01
【问题描述】:
我正在尝试编写 MATLAB 代码,接收估计的概率 x 和 y 并将它们映射到一组调整后的概率 p 和 q。
通常输入概率x 和y 不会加起来为 1,因此代码的重点是调整概率,使它们加起来为 1。
这是一个例子,x + y = 1.03
syms n p q x y
eqn1 = x == 0.7813;
eqn2 = y == 0.2487;
eqn3 = p^n == x;
eqn4 = q^n == y;
eqn5 = log(x)./log(p) == log(y)./log(q);
eqn6 = x^(1/n) == p;
eqn7 = y^(1/n) == q;
eqn8 = p + q == 1;
sol = solve([eqn1, eqn2, eqn3, eqn4, eqn5, eqn6, eqn7, eqn8], [n p q x y])
n 的值同时应用于 x 和 y,它故意比高概率估计更能“压低”低概率估计。
我知道在上面的示例中,答案应该是n≈0.946139, p≈0.7704, q≈0.2297,但无法编写任何产生这种输出的代码。
上面的代码产生一个空结构。我也尝试过vpasolve,但也没有用。我不确定我的解决方案是否失败是因为我错误指定了问题,还是因为我在 MATLAB 中使用了错误的函数类型。
【问题讨论】:
-
当solve返回一个没有警告的空结构时意味着没有解决方案,如果有警告说明解决方案没有找到解决方案但存在解决方案。你收到警告了吗?
标签: matlab