Mijn (sterk gereduceerd) script is de volgende (ik probeer een Dirichlet-randvoorwaarde te implementeren):
Code: Selecteer alles
temp1 = 100;
temp0 = 20;
alpha = 0.01;
deltat = 0.0125;
deltarho = 0.025;
t = (0:deltat:15);
rho = (0:deltarho:1);
m = (500-0)/deltat +1; %aantal knopen bij t
n = (2-0.025)/deltarho +1; %aantal knopen bij rho
U = zeros(m, n+1);
for k = 1:1:m
U(k, n+1) = temp1 - (temp1 - temp0)*exp(-alpha*t(k));
end
Attempted to access t(1202); index out of bounds because numel(t)=1201.
Error in testscript (line 24)
U(k-1, n+1) = temp1 - (temp1 - temp0)*exp(-alpha*t(k-1));
Ik heb al verschillende oplossingen gezocht zoals:
- mijn for-lus laten lopen tot m+1
- binnen binnen mijn for lus overal k vervangen door k-1
Iemand die ziet wat ik hier fout doe?
Als jullie nood hebben aan mijn volledige Matlab-script, dan post ik deze gerust (maar de fout ligt echt wel aan bovenstaand deel).