MATLAB을 사용하여 오히려 추한 적분을 계산하려고합니다. 내가 가지고있는 문제는 아주 작은 숫자 (< 10^-300)로 매우 큰 숫자 (> 10^300)를 곱하는 부분입니다. MATLAB은 0-0.0005 범위에 있어야하지만 'inf'를 반환합니다. 이것은 내가 무엇을 가지고 큰 숫자를 작은 숫자로 곱하기
besselFunction = @(u)besseli(qb,2*sqrt(lambda*(theta + mu)).*u);
exponentFuncion = @(u)exp(-u.*(lambda + theta + mu));
QB = 5, 람다 = 12, 세타 = 10, MU = 3 그리고 내가 찾으려는 U의 모든 실제 값에 대한
besselFunction(u)*exponentFunction(u)
입니다
. 문제는 u> 28 일 때마다 'inf'로 평가된다는 것입니다. 내가 들었고, MATLAB 함수 'vpa'를 사용하려고했지만 기능을 사용하려고 할 때 잘 작동하지 않는 것 같습니다 ...이 시점에서 어떤 팁을 주시면 감사하겠습니다!
실제로 가장 똑똑한 방법입니다. 감사! 내 필요에 따라 큰 숫자를 처리 할 수있는 상징적 인 엔진을 사용하는 것으로 충분했다. 이것은 내가 한 방법입니다 : besselFunction = @ (u) besseli (qb, 2 * sqrt (lambda * (theta + mu)). * sym (u)); exponentFuncion = @ (u) exp (-sym (u). * (람다 + 세타 + 뮤)); Then besselFunction (u) * exponentFunction (u) 은 기호 값을 반환합니다. 배정도 표현을 원하면 double()을 사용할 수 있습니다. – Groot