2013-06-18 5 views
-1

Matlab의 sqrt에서 양수와 음수를 모두 얻을 수있는 방법을 알고 싶습니다. 예를 들어 Matlab의 sqrt 이중 솔루션?

내가있는 경우 :

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

그래서 무엇의 모든 지저분한 사업 처리하지 것이다 이 예제에서 얻을 것으로 예상되는 결과는 무엇입니까? –

답변

0

MATLAB (및 내가 알고있는 모든 프로그래밍 언어)은 sqrt(x) 또는 이와 동등한 번호를 호출 할 때 xprincipal square root만을 반환합니다.

당신은 전체 솔루션을 작성하기위한 단지 속기, 당신은 좋겠 MATLAB에서

s = {+√x -√x} 

을 설정입니다

s = ±√x 

입니다 에게 수학적으로 x 제곱근을 써서 어떻게 이 마지막 사례와 동일하게 작성하지만 구문은 약간 다르지만 구문은 약간 다릅니다.

s = [+sqrt(x) -sqrt(x)] 
당신이 sqrt "외부 요인"경우보다 효율적으로 계산할 수3210

:

s = sqrt(x) * [1 -1] 

따라서, 귀하의 경우에,

s = sqrt(1-cos(a)^2) * [1 -1] 

또는, 만약 당신이 그렇게 욕망,

s = sin(acos(a)) * [1 -1] 

다소 느리지 만 읽기 쉽습니다 (실제로는 좀 더 정확합니다).

어떻게 든 누구의 몫 당신의 코사인 값에서 결과 구성 요소를 찾을 수 있다면 지금은 물론, 당신은 물론 ....

1

docs 항상에만 긍정적 인 제곱근을 제공하지만, 당신이 부정적인 광장을 얻을 수있는 경우에 공정한 가정처럼 보인다 대한 구체적인 아무 말도하지 않는다 아주 쉽게이 같은 :

p = sqrt(1-cos(a)^2); 
n = -sqrt(1-cos(a)^2); 
BTW 그런 sin(a)에 할당

많은 possib로 이어지는 sin 기능을 숨길 수 sin라는 변수를 만들 것입니다 르 오류 때문에 다른 변수 이름을 선택하는 것이 좋습니다.

+0

죄송합니다. 아마도 내가 잘못된 방법으로 질문했을 것입니다. 로봇의 역 기구학을 연구 중이며 이미 cos_a (a가 아님) 값을 가지고 있습니다. sin_a 값을 찾아야합니다. 나는 그것들이 함수가 아니라 변수라는 것을 보여주기 위해 그것들을 다시 썼다. 노트 Dan에 감사한다. – Spyros

0

sqrt은 방정식을 풀지 않으며 수치 출력 만 제공합니다. 방정식을 필요에 따라 공식화해야하며, sqrt(...)-1*sqrt(...)을 사용하면 양수 및 음수 출력을 얻을 수 있습니다.