我們有一個類似於第二類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
(積分內部)。不幸的是,這種編寫代碼的方式(帶有函數句柄)並不能爲我們提供數值,正如我們所希望的那樣。由於xi
沒有定義(直到integral
定義它),我們不能寫delt
作爲兩個不同的函數,x
之一和xi
之一。那麼,我們如何才能確保delt
依賴於xi
內部的積分,並仍然從迭代中獲得數值?
對於我們如何解決這個問題,你們有沒有任何建議?
使用數值積分的輸入參數的
說明:x是數值的矢量,其餘全部是常數。我的代碼有一個問題,輸入參數x沒有被使用(我想這意味着x被視爲符號)。
你使用符號還是數值積分? – Jan
@Jan數值積分。 (編輯我的問題) – Linda
也許'x'是你的函數被近似的網格點的向量....? – Jan