Mjälp med function handle till ode45 i Matlab

Permalänk
Medlem

Mjälp med function handle till ode45 i Matlab

Jag är ganska ny i matlab men iallafall,

Igår fick jag min function handle till ode45 att fungera och fick ut värden som jag sedan kunde plotta.
Men idag när jag startade matlab för att fortsätta så får jag bara detta felmeddelande:

Citat:

Error using odearguments (line 93)
BLANDNING returns a vector of length 1, but the length of initial conditions vector is 3. The vector
returned by BLANDNING and the initial conditions vector must have the same number of elements.

Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in uppgift1 (line 22)
[t,y] = ode45(@blandning,tspan,y0,[],s,q,w);

Men om jag kör length(dx) (som är min utgående värde från funktionen) så får jag 3 som svar.

Någon som kanske kan hjälpa mig med vad det är som har blivit galet?

Programmet:

clear; s = 1.00; w = 0.1610; q = 1.00; %Begynelsevärden Al = 30; Be = 1; Ga = 30; y0 = [Al,Be,Ga]; %Tid tstart = 0; tslut = 10; tspan = [tstart tslut]; %Beräkning [t,y] = ode45(@blandning,tspan,y0,[],s,q,w);

blandning.m

function [t,dx] = blandning(t,y,s,q,w) %test dAl = s * (y(2) - y(2) * y(1) + y(1) - q * y(1).^2); dBe = s.^-1 * (-y(2) - y(1) * y(2) + y(3)); dGa = w *(y(1) - y(3)); dx = [dAl, dBe, dGa];