第2種のFredholm integral equationと同様の式があります。我々は、特定の式のために収束することが保証されて反復解法を与えられている。この方程式を解くためにMatlabの積分方程式の反復解法を実装する
。今私たちの唯一の問題は、MATLABでこの繰り返しプロデューサーを実装することです。今の
、我々のコードの問題の一部は、次のようになります。
function delta = delta(x,a,P,H,E,c,c0,w)
delt = @(x)delta_a(x,a,P,H,E,c0,w);
for i=1:500
delt = @(x)delt(x) - 1/E.*integral(@(xi)((c(1)-c(2)*delt(xi))*ms(xi,x,a,P,H,w)),0,a-0.001);
end
delta=delt;
end
delta_a
がx
の関数であり、反復の初期値を表します。 ms
は、x
とxi
の関数です。
delt
は、x
(積分の前)とxi
(積分の内側)の両方に依存するようにしてください。残念なことに、コードを書く(関数ハンドルを使用する)この方法では、われわれが望むように数値は得られません。 delt
をとxi
のいずれかの2つの異なる関数として書き込むことはできません。xi
が定義されていないため(integral
が定義されているため)。だから、どうすればdelt
がxi
に依存しているかどうかを確認することができますが、それでも繰り返しから数値が得られますか?
私たちがこの問題を解決する方法についてご意見をお聞かせください。数値積分
を入力パラメータの説明を使用して、
:Xは数値のベクトルであり、すべての残りの部分は定数です。私のコードの問題は、入力パラメータxが使用されていないことです(これは、xがシンボルとして扱われていることを意味します)。あなたはMATLABで無名関数のネストを行うことができますように
シンボリックまたは数値積分を使用していますか? – Jan
@Jan数値積分。 (私の質問を編集しました) – Linda
おそらく 'x'は関数が近似されるべき格子点のベクトルです....? – Jan