MATLAB: What was that problem

Matlab:edit,then add the the following values in a m.file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function dx=myfun(t,x)
dx(1)=-6*x(2)*x(2)-9;
dx(2)=-3*x(1)*x(2)-2*x(3)-Yvv-Yuu;
dx(3)=x(1)*x(2)+x(3)+8;
Yvv=0.5*p*L*T*(0.048265-6.293*(1-c)*T/B);
Yuu=0.5*p*L*L*L*T*(0.0045-0.445*(1-c)*T/B);
dx=dx(:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Finally,, Matlab :
clear all
clc
syms Yvv Yuu p L T c T B
x0=[1,1,1];
t0=0:0.1:2;
[t,x]=ode45('myfun',[0,10],x0); %ode45会自动调整步长
plot(t,x)
legend('u','v','Y')

Best Answer

  • Try
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    function dx=myfun(t,x)
    p=1;
    L=1;
    T=1;
    c=1;
    B=1;
    Yvv=0.5*p*L*T*(0.048265-6.293*(1-c)*T/B);
    Yuu=0.5*p*L*L*L*T*(0.0045-0.445*(1-c)*T/B);
    dx(1,1)=-6*x(2)*x(2)-9;
    dx(2,1)=-3*x(1)*x(2)-2*x(3)-Yvv-Yuu;
    dx(3,1)=x(1)*x(2)+x(3)+8;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    clear all
    clc
    x0=[1,1,1];
    t0=0:0.1:2;
    [t,x]=ode45('myfun',[0,10],x0); %ode45会自动调整步长
    plot(t,x)
    legend('u','v','Y')
    Best wishes
    Torsten.