-1

我想知道如何从 Matlab 中的 sqrt 获得正解和负解。

例如,如果我有:

sin(a) = sqrt(1-cos(a)^2); 
4

3 回答 3

1

文档没有具体说明总是只提供正平方根,但这似乎是一个公平的假设,在这种情况下,您可以像这样很容易地得到负平方:

p = sqrt(1-cos(a)^2);
n = -sqrt(1-cos(a)^2);

顺便说一句,分配给sin(a)like 将创建一个名为的变量,该变量sin将隐藏sin导致许多可能错误的函数,因此我强烈建议选择不同的变量名称。

于 2013-06-18T08:46:10.227 回答
0

sqrt不解方程,只给出数值输出。您将需要根据需要制定方程式,然后您可以使用它sqrt(...) -1*sqrt(...)来给出正负输出。

于 2013-06-18T08:46:21.287 回答
0

MATLAB(以及我所知道的所有其他编程语言)仅在调用或等效时返回主平方根xsqrt(x)

你如何写出数学平方根,是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]

这有点慢,但可能更具可读性(实际上也更准确)。

现在当然,如果你能以某种方式找到其商导致你的余弦值的组件,那么你当然不必处理所有这些混乱的事情......

于 2013-06-18T14:30:18.010 回答