무한한 적분 한계가있는 한정 분모의 수치 계산이 포함 된 수식을 사용하여 데이터에 적합하게하려고합니다. 피팅을 위해 벡터화 모델 기능이 필요한 옥타브 함수 leasqr
을 사용합니다. 다음 코드는 숫자 통합을 호출 할 때 발생하는 오류를 생성합니다. 나는 오류가없는함수의 벡터화에는 옥타브 단위의 유한 정수의 수치 계산이 포함되어 있습니다.
for i = 1 : length (h)
dd (i) = gauss_disp (h (i), pin)
endfor
,하지만 난이 구성을 사용할 수 없습니다 : 나는 루프를 사용하고있는 경우
function [fGsAb] = GsAbs (x, p)
Hw = 3108.0 ;
fGsAb = Hw ./ (2.4 .* p(1) .*p(2)) .^2 .* (exp (- (Hw - p(1) .* x) .^2 ...
./ (2.4 .* p(1) .*p(2)) .^2) - exp (- (Hw + p(1) .* x) .^2 ...
./ (2.4 .* p(1) .*p(2)) .^2)) ;
endfunction
function [GsDisp] = gauss_disp(x, p)
[GsDisp1, err] = quadgk (@(z) GsAbs(z, p) ./(z-x), - inf, x - 0.000001);
[GsDisp2, err] = quadgk (@(z) GsAbs(z, p) ./(z-x), x + 0.000001 , inf );
GsDisp = GsDisp1 +GsDisp2;
endfunction
h = [200:15:6000];
pin =[1 250];
dd = gauss_disp (h, pin);
(OP2은 10x2가 OP1는 1x387입니다)
준수하지 않는 인수 leasqr
. 이 제한 사항을 어떻게 해결할 수 있습니까?
미리 감사드립니다.
질문이 명확하지 않습니다. 이 함수들을 파일로 정의하고 있습니까? 아니면 옥타브 터미널에서 직접? 그리고이 줄을 당신에게주는 것은 무엇입니까? –
문제 해결에 도움이되는 답변을 제공해 주셨습니다. 그러나'leasqr'가'optim' 패키지의 함수라는 사실과 같은 특정 정보를 제공 해주시기 바랍니다. 그리고 이것이 실패한 특별한 형태의 함수를 기대합니다. 나 자신을 추측하기 위해 합리적인 양의 탐정 작업을해야했다. –