我们有一个类似于第二类
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没有定义(直到整数定义它).那么,我们如何确保delt依赖于积分内部的xi,并且仍然可以从迭代中获得数值?
你们有什么建议我们如何解决这个问题?
使用数值积分
输入参数的说明:x是数值的向量,其余都是常量.我的代码的一个问题是没有使用输入参数x(我猜这意味着x被视为符号).