2013-01-08 2 views
0

matlab에 함수를 통합하려고했지만 이상한 결과가 계속 나타납니다. 결과.MatLab 통합 형식의 결과

>> syms w x; 
>> w = 0.8335*(cosh(52.42*x)-cos(52.42*x)-sinh(52.42*x)+sin(52.42*x)); 
>> int(w, 0, 1) 
>> (1667*sinh(2621/50))/104840 ... /*Some long expression*/ 

대신 좀 최종 수치를주는이 sinh(2621/50)과의 통합을 떠난다. 잘못된 기능을 사용하고 있습니까? 어떤 도움이라도 좋을 것입니다.

+0

'nice'함수의 수치 적분은 matlab에서 정말 쉽고'x = 0 : 0.000001 : 1; '을 정의한 다음'w'를 계산하고'mean'을 취합니다. 귀하의 경우에 나는 그것이 약 0.0427라고 말할 것입니다. –

답변

1

숫자 값을 가져 오려면 결과 표현식을 평가하면됩니다. sinh (2621/50)는 숫자에 불과합니다.

+0

나는 그것을 할 수는 있지만 그것을 피할 수있는 방법이있다. 나는 matlab에 직접 최종 결과 (131.12와 비슷한 것)를 주길 원한다. – anuragsn7

+0

잘 모르겠지만'int'를 eval로 랩핑하거나 1을 곱하면 어떨까요? –

+0

eval이 작동하는 것처럼 보입니다 ... 필자의 매개 변수가 일부 변경 될 것으로 예상했지만. 어쨌든 도움에 감사드립니다. – anuragsn7

0

심볼릭 도구 상자에 액세스 할 수 없지만 출력을 정확하게 제어하려면 vpa() (mathworks variable-precision arithmetic)과 같은 표현식을 평가하는 것이 좋습니다.

예를 들어 vpa(int(w, 0, 1),5)은 5 자리 유효 숫자입니다.

+0

이것은 여전히'int'를 호출하고'w'의 정의를 요구합니다. 이것은 문서를 확인한 후에 심볼릭 툴박스의 일부일 것 같습니다. –

+0

@DennisJaheruddin 나는 아마도 내가 약간 불분명하다는 것을 알았다. 예, 그것은 상징적 인 도구 상자 함수이며, 결과 표현식을 평가할 때와 마찬가지로 'int()'표현식을 평가합니다. 질문은'int()'에서 수치 결과를 얻는 것이 가능한지의 여부입니다. 이것이 가능한 것처럼 보이지 않습니다. 결과 표현식에'vpa()'를 사용하면 유효 숫자의 수를 제어 할 수 있습니다. (이 함수는 분석 결과를 찾을 수 없을 때 결과의 수치 근사를 얻는 데 더 일반적으로 사용됩니다.) – user1884905