| New Reply |
2nd order nonhomogenus differential equation in matlab |
Share Thread | Thread Tools |
| Sep22-11, 10:51 AM | #1 |
|
|
2nd order nonhomogenus differential equation in matlab
1. The problem statement, all variables and given/known data
I am studying a forced undamped oscillator with matlab governed by the equation: y'' + [itex]\omega[/itex]oy = 2Cos([itex]\omega[/itex]t) First I have to write a function that can be solved by the solver ode45. Here is where I am stuck. Matlab just spits error messages at me when I try to run the solver. It would be awesome if someone could check my mfile and see where I am going wrong. 2. Relevant equations y'' + [itex]\omega[/itex]oy = 2Cos([itex]\omega[/itex]t) y(0)=0 y'(0)=0 [itex]\omega[/itex]o = 2 [itex]\omega[/itex] = 1.95+[itex]\epsilon[/itex] e = a small number 3. The attempt at a solution This is my m-file, descriptions in green ----------------------------------------------- function [ydot] = occi( t,y ) % The name of the function is occi Wo = 2; % The value of [itex]\omega[/itex]o e = 9*8*10^-3; % Value for [itex]\epsilon[/itex] w = 1.95+e; % The value for [itex]\omega[/itex] ydot = zeros(2,1); %Creates a 2rows 1column matrix to contain the system of Ode ydot(1) = y(1); %sets y' = y1 ydot(2) = 2*cos(w*t)-(Wo^2)*y; %sets Y'' = 2Cos([itex]\omega[/itex]t) - [itex]\omega[/itex]oy end ------------------------------------------ Then I run this script: >>[tout, yout] = ode45(@occi, [0 2*pi], [0; 0]); and matlab slaps me in the face with: ??? In an assignment A(I) = B, the number of elements in B and I must be the same. Error in ==> occi at 7 ydot(2) = 2*cos(w*t)-(Wo^2)*y; Error in ==> odearguments at 98 f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0. Error in ==> ode45 at 172 [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... So, I don't get what's wrong. Thanks for help. (is it presumptuous to write that?) |
| Sep23-11, 08:57 AM | #2 |
|
|
As far as I can tell, you have only a single, fairly subtle error. Without meaning to frustrate you, I think it'd be better if you can find it for yourself. I'll give you a couple of hints:
1. The error is in line 7 (where you assign your function value to ydot(2) ) 2. You could easily have made the exact same error in line 6, but didn't. If you still struggle by tomorrow, I'll put you out of your misery. Given the relevant equations you gave, it looks like you may also have a logic error in line 7. I don't think ω0 should be squared? |
| New Reply |
| Thread Tools | |
Similar Threads for: 2nd order nonhomogenus differential equation in matlab
|
||||
| Thread | Forum | Replies | ||
| Help with Matlab solving second order differential equations | Math & Science Software | 10 | ||
| Second Order Differential Equations in MatLab | Differential Equations | 0 | ||
| 1D 2nd-Order nonlinear differential eqn using Matlab | Math & Science Software | 42 | ||
| second order system of differential equations in Matlab | Math & Science Software | 11 | ||
| 1D 2nd-Order nonlinear differential eqn in Matlab | Math & Science Software | 0 | ||