我有以下代码:
function [T,U]=thetamethod(fun, S, u0, theta , h, makePlot)
if nargin < 6
makePlot = 0;
end
minT=min(S);
maxT=max(S);
t=[minT:h:maxT];
u=zeros(length(u0),length(t));
u(:,1)=u0;
for i=1:length(t)-1
for j=1:length(u0)
delta_function = @(x) x - u(j,i) - h*((1-theta)*fun(t(i), u(j,i)) + (theta)*fun(t(i+1), x));
delta = delta_function(u(j,i));
jacobean = @(x) numjac(@(t,u) delta_function(u), 0, x, delta_function(x), 1e-10, [], 1);
u(j,i+1) = multinewton(delta_function,jacobean,u(j,i),0.1,10000);
end
end
if length(S)==2
T=t';
U=u';
else
T = S';
U=zeros(length(T),length(u0));
for i=1:length(u0);
U(:,i) = interp1(t',u(i,:),T);
U(end,i)=u(i,end);
end
end
if (makePlot)
figure;
plot(t,u);
xlabel('time t'); ylabel('u(t)');
set(gca, 'xlim', [S(1) S(end)]);
end
end
用于计算theta方法。 但是,当我调用此函数时,我将收到一个错误:
“调用”theta方法“时未分配输出参数”x“(可能还有其他)。”
有人知道我的代码中有什么(小)的东西要改变吗?
的Gr