Я получаю эту ошибку при запуске моего кода:
Ошибка при использовании ==> mldivide Размеры матрицы должны совпадать.
Вот мой код:
%make the plots of phase and group velocity vs discreteness of the grid
c=1;
a=input('Please enter the ratio cdt/dx : ')
figure(1)
R=2:40;
plot(R,phase_vel(R,a)/c)
xlabel('R=l/dx')
ylabel('u_phase/c')
%figure(2)
%plot(group_vel(R,a),R,0,40)
%xlabel('R=l/dx')
%ylabel('u_group/c')
и вот мои функции:
function phase_velocity = phase_vel(R,a)
%numerical phase velocity of the discrete wave
c=1;
phase_velocity=(2*pi*c)/(R*knum(R,a));
end
function group_velocity =group_vel(R,a )
%numerical group velocity of the discrete wave
c=1;
group_velocity=(a*sin(knum(R,a)))/(sin(2*pi*a/R))
end
function knumber = knum(R,a)
%This is the k wave number
knumber=acos((1/a)^2*(cos(2*pi*a/R)-1)+1);
end
Как я могу решить эту ошибку?
EDIT: я использовал . оператор в каждом уравнении, и я изменил пределы R = 4:40
plot
или во втором? (2) Если с первым все в порядке, а со вторым нет, поможет ли вам сказатьomega=2*pi/R/dt;
вместоomega*dt==2*pi/R;
, чтобы там не было решения уравнения? - person Gareth McCaughan   schedule 29.03.2011