我想知道如何从Matlab中的sqrt获得正面和负面解决方案。
例如,如果我有:
sin(a) = sqrt(1-cos(a)^2);
答案 0 :(得分:1)
docs没有说明总是只提供正平方根的具体内容,但它看起来似乎是一个公平的假设,在这种情况下你可以很容易地得到负方形:
p = sqrt(1-cos(a)^2);
n = -sqrt(1-cos(a)^2);
btw分配给sin(a)
这样会创建一个名为sin
的变量,它会隐藏导致许多可能错误的sin
函数,因此我强烈建议您选择其他变量名。
答案 1 :(得分:0)
sqrt
不解决方程式,只给出数值输出。您需要根据需要制定等式,然后使用sqrt(...)
-1*sqrt(...)
来提供正负输出。
答案 2 :(得分:0)
MATLAB(以及我所知道的所有其他编程语言)在调用x
或同等版本时仅返回sqrt(x)
的{{1}}。
如何以数学方式编写 x
的平方根
s = ±√x
这只是编写整个解决方案集的简写
s = {+√x -√x}
在MATLAB中,你的编写与最后一种情况相同,但语法略有不同,
s = [+sqrt(x) -sqrt(x)]
如果你“分解”sqrt
:
s = sqrt(x) * [1 -1]
所以,对于你的情况,
s = sqrt(1-cos(a)^2) * [1 -1]
或者,如果你愿意的话,
s = sin(acos(a)) * [1 -1]
这有点慢,但可能更具可读性(实际上也更准确一些)。
现在,当然,如果你能以某种方式找到其商的结果与余弦值相对应的组件,那么你当然不必处理所有这些混乱的业务....