# Matlap help

1. Mar 14, 2004

### louie

I think that the following MatLab code will solve the first D.E,

>> function xdot = nlseq(t,x); % Returns the state derivative
>> R = [2 -1; 3 5];
>> L = [1 – cos(0.5*t) 5*sin(4*t); 20*sin(2*t) 3–cos(0.8*t)];
>> V = [15*sin(t); 25*cos(t)];
>> xdot = inv(L)*(V – R*X);

>> tspan = [0, 10]; % Time interval
>> x0 = [0;0]; % Initial condition
>> [t, x] = ode23(‘nlseq’,tspan,x0);

I would like to know how to incorporate the second D.E into the above code so that I can solve for both (I realize I need to make another xdot command, but I’m not sure how to do it).
Another problem that I have is that I want to plot y vs w, where w is the solutions from the second D.E and y is shown on the jpeg extension,

So basically I want to take my solution (at every interval) from solving the first D.E. and transform it through the matrix shown on the extension. I would think that I need to write some kind of loop, but I’m not sure how to do it.

Any help with the above problems would be greatly appreciated

#### Attached Files:

• ###### matlab.jpg
File size:
11.9 KB
Views:
119
2. Mar 15, 2004

### enigma

Staff Emeritus
To do it all in one shebang, do the following:

Have the state vector be: [x1,x2,w]. For clarity, I'll call it q, with the derivative being dq

In your lnseq file, have dq(1:2) be your x1' and x2', and have dq(3) be w'

If you specify specific times instead of a time range ( [0:.1:10] instead of [0,10]) this will return the values of x1, x2, and w at those times.

In your main function, you can then do the matrix manipulation for each time to get the graph of y1 and y2, since w will be returned for the same times as x1 and x2.

3. Mar 15, 2004

### enigma

Staff Emeritus
Alternately, you could set the function definition as:

lnseq(t,x,flag,value1,value2,...)

and have the ode23 call read:

ode23('lnseq',t,w,[],variable1,variable2,...)

The empty bracket is used for precision options of ode23. The trailing variables are other parameters you want available in the function definition.

I think the first way will be better, though...