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

1 Ansicht (letzte 30 Tage)
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;

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 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 Kommentare
asim asrar
asim asrar am 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 am 28 Sep. 2018
sorry there is no error now , thanks a-lot for the help

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by