MATLAB

0

'daki bir işlevle pcg nasıl kullanılır MATLAB'de konjugat gradyanı yöntemini kullanarak bir ters problemi, AX=b çözeceğim. MATLAB'da pcg işlevini kullanmak istiyorum ve matris A yerine bildiğim gibi bir işlevi kullanabilirim.MATLAB

Bazı girişler için örneğin afun işlevim var. Belgelerimde, afun işlevinin pcg işlevinde girişler olmadan girildiğini gördüm, ancak aynı şeyi yaptığımda not enough input arguments hatası görüntüleniyor. Böyle bir kodu kullanın:

b = afun(ent1,ent2); 
x = pcg(@afun,b,tol,max_iter); 

nasıl pcg benim işlevini kullanmalısınız?

cevap

0

Belgelere göre, işlev tanıtıcısı afun(x) imzasına sahip olmalı ve A*x değerini döndürmelidir.

% I dont know what these ent1/ent2 represent exactly, 
% so you must complete the ".." part first 
fcn = @(x) afun(x, ..) 

% now you can call PCG 
x = pcg(fcn, b, tol, maxiter); 

kullanılarak ekstra args geçmesine nasıl parameterize functions açıklayan doc sayfa bulunmaktadır:

İşleviniz görünüşte iki giriş alır

... Aramayı, böyle bir şey sarmak için bir anonim işlevini kullanmanız gerekir function handles.