2013-08-24 2 views
0

내가 fsolve를 사용하여 선형 방정식의 시스템을 해결하기 위해 노력하고,충분하지 않은 입력 인수 - fsolve

'handleit이'입니다
options = optimoptions('fsolve','Display','iter'); 
guess=[0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 400000; 400000]; 
[Unkn,value]=fsolve(@handleit,guess,options); 

내가 오류를 다음 얻을이 실행

function Eqn = handleit(u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15,f1,f2,f16) 
Eqn=[...some equation is here...]; 
,

Error using handleit (line 2) 
Not enough input arguments. 
Error in fsolve (line 218) 
      fuser = feval(funfcn{3},x,varargin{:}); 
Caused by: 
    Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue. 

오류의 마지막 줄에 대해 나는 내 추측을 처리 함수로 대체하고 위트를 평가합니다. hout 어떤 오류

+0

'추측'은 열 벡터 대신 행이어야합니까? – Schorsch

+0

아니, 이미 그렇게 해 봤어. –

답변

0

문제는 매개 변수가 함수로 전달되는 방법에 있습니다. 일반적으로 함수 X는 최적화 파라미터와 매트릭스 인 형식 F (X, a) 있어야하는 것은 다음의 (다소 불안정) 실시 예에서와 같이 고정 된 파라미터의 매트릭스이다

a=[2 3; 4 1]; % <-- fixed parameters 
x0 = [1 2; 3 4]; % <-- trial values 
test = @(x,a) exp((x(1)-a(1)).^2).*exp((x(2)-a(2)).^2).*exp((x(3)-a(3)).^2).*exp((x(4)-a(4)).^2); 
fsolve(test,x0,[],a) 
+0

아니요, 그렇지 않습니다. 내 코드에는'a'와 같은 매개 변수가 없습니다. 게다가'test = @ (x) ... '를 취하여'a'없이 코드를 실행 시켰고 동일한 결과를 얻었다. –

+0

@RavishVerma 문제를 해결 했습니까 ?? –

관련 문제