Ошибка при построении графика - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть следующая функция:

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;

Я не совсем уверен, что я делаю неправильно, и любая помощь будет оценена. Спасибо.

1 Ответ

1 голос
/ 04 декабря 2011

Вы пытаетесь извлечь возвращаемое значение из функции, но вы не объявили никаких возвращаемых аргументов, когда писали функцию.

Возможно, вы хотели написать:

function phi = solve_heat_equation(T,N_time,N_space,A,B)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...