我们有一个类似于第二类Fredholm 积分方程的方程。
为了求解这个方程,我们得到了一个迭代解,它保证收敛于我们的特定方程。现在我们唯一的问题在于在 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
两个不同的函数,一个x
和一个xi
,因为xi
没有定义(直到integral
定义它)。那么,我们如何确保它delt
依赖于xi
积分的内部,并且仍然从迭代中得到一个数值呢?
你们中有人对我们如何解决这个问题有任何建议吗?
使用数值积分
输入参数说明:x为数值向量,其余均为常数。我的代码的一个问题是输入参数 x 没有被使用(我猜这意味着 x 被视为一个符号)。