my code is showing not enough input argument error how to resolve

1 vue (au cours des 30 derniers jours)
asim asrar
asim asrar le 28 Sep 2018
Commenté : asim asrar le 28 Sep 2018
clear all; close all; clc;
dx=0.01;
L=20;
x=-L/2:dx:L/2-dx;
f=0*x;
f=sech(x);
plot(x,f)
dt=0.025; % integral in time in increments of 0.025
for k =1:100
t=k*dt;
[t,y]=ode45(@(t,y)rhsNEW(t,y,L),[0 dt],f);
% we are assuming ode 45 is taking a lot of little steps and we want to
% to take the last step
f(:)=y(end,:);
plot(x,real(f))
axis([-10 10 -1.5 1.5])
pause(0.1)
end
function is -
function dout=rhsNEW(t,u,L)
pi=3.14;
Nx =length(u);
uhat=fft(u);
kap=(2*pi/L)*[-Nx/2:Nx/2-1];
kap=fftshift(kap');
duhat=1i*kap.*uhat;
du=ifft(duhat);
duout=-du;

Réponse acceptée

Walter Roberson
Walter Roberson le 28 Sep 2018
I tested your code and do not get that error. What I get is
Output argument "dout" (and maybe others) not assigned during call to "rhsNEW".
which is correct, as you assign to a variable named duout but not to dout.
When I change that variable name the code seems to work.
  2 commentaires
asim asrar
asim asrar le 28 Sep 2018
Dear Walter Roberson, Thanks for the response, i have changed the variable duout to dout , but it is still showing the error of not enough input argument , what changes should i need to make in my code
clear all; close all; clc; dx=0.01; L=20; x=-L/2:dx:L/2-dx; f=0*x; f=sech(x); plot(x,f)
dt=0.025; % integral in time in increments of 0.025 for k =1:100 t=k*dt; [t,y]=ode45(@(t,y)rhsNEW(t,y,L),[0 dt],f); % we are assuming ode 45 is taking a lot of little steps and we want to % to take the last step f(:)=y(end,:); plot(x,real(f)) axis([-10 10 -1.5 1.5]) pause(0.1) end
function dout=rhsNEW(t,u,L) pi=3.14; Nx =length(u); uhat=fft(u); kap=(2*pi/L)*[-Nx/2:Nx/2-1]; kap=fftshift(kap); duhat=1i*kap.*uhat; du=ifft(duhat); dout=-du;
asim asrar
asim asrar le 28 Sep 2018
sorry there is no error now , thanks a-lot for the help

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by