【发布时间】:2013-05-10 05:07:17
【问题描述】:
我们有一个类似于第二类Fredholm integral equation 的方程。
为了求解这个方程,我们得到了一个迭代解,它保证收敛于我们的特定方程。现在我们唯一的问题在于在 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 被视为一个符号)。
【问题讨论】:
-
你使用符号积分还是数值积分?
-
@Jan 数值积分。 (编辑我的问题)
-
也许
x是要逼近您的函数的网格点的向量......?
标签: matlab iteration equation integral