function A_j = po(j,k) % Adomian polynomials
if j >0
x = sym('x',[1 j])
syms p % Assinging a symbolic variable for p
syms x0
S = x0+ sum(p.^(1:j) .* x) ; % Sum of p*x up to order j
Q =f(S,k);
A_nc = diff(Q,p,j)/factorial(j);
A_j = subs(A_nc,p,0) ; % Filling in p=0
else
syms x0
S = x0;
A_j =f(S,k);
end
end
我的职能F(x,k)在MATLAB中如下所示,
function F = f(x,k) % Nonlinear function of k power
F = x^k ;
end
我想做一个当循环,这样我就可以实现X1,X2等,所以我尝试以下方法,注意我所选择的兰卜达=k(s,t)=1和X0=t^{2}
x0 = @(t) t^{2}
K = matlabFunction(subs(po(0,2)))
x1 =integral(K,0,1)
K= matlabFunction(subs(po(1,2)))
x2 = integral(K,0,1)
K= matlabFunction(subs(po(2,2)))
x3 = integral(K,0,1)
etc
现在我的问题是如何调用所有的XJ在一段时间的循环中。我试着打电话X(J),因为x(J)=xj但显然这是行不通的,因为它将为X(J)而不是XJ
发布于 2018-08-01 16:30:51
不是很好的解决办法,但应该有效.
for n = 1:N
eval(sprintf('x%d = integral(K,0,1);',n));
end
https://stackoverflow.com/questions/-100001836
复制相似问题