У меня есть следующая функция:
function solve_heat_equation(T,N_time,N_space,A,B)
delta_t=T/N_time;
delta_x=1/N_space;
rho=delta_t/delta_x^2;
phi=zeros(N_space+1,N_time+1);
phi(:,1)=initial_condition((0:N_space)*delta_x);
for j=1:N_time;
for i=2:N_space;
phi(i,j+1)=rho*(phi(i-1,j)+phi(i+1,j))+(1-2*rho)*phi(i,j);
end;
phi(1,j+1)= (-2*A*delta_x - 4*phi(2,j+1) + phi(3,j+1))/-3;
phi(N_space+1,j+1)=(2*B*delta_x+4*phi(N_space,j+1)+phi(N_space-1,j+1))/3;
end;
Для справки, начальное условие:
function z=initial_condition(x);
z=0.5-abs(0.5-x);
вышеуказанная функция работает отлично; однако, когда я пытаюсь отобразить результаты с помощью функции followign, я получаю сообщение об ошибке.
??? Ошибка при использовании ==> solve_heat_equation Слишком много выходных аргументов.
Ошибка в ==> check_solution_to_heat_equation в 46
phi = solve_heat_equation (T, N_time, N_space, A, B);
clear all;
hold on;
grid on;
N_time = 1000;
N_space = 50;
A = 1;
B =1;
delta_x=1/N_space;
x_var=(0:N_space)*delta_x;
for T=[0.01,0.05,0.25,0.5];
phi = solve_heat_equation(T,N_time,N_space, A, B);
plot(x_var,phi);
end;
Я не совсем уверен, что я делаю неправильно, и любая помощь будет оценена. Спасибо.