ode45 2nd order IVP **please help!!**
5 views (last 30 days)
Show older comments
The problem I am trying to solve is this:
"Consider the IVP z"+4z'+3z=e^x, z(0)=1 and z'(0)=2. Rewrite it as a system represented by ex3_2ndorder.m. Be sure to put comments after the signature line and wherever else they are needed. Be sure you return a column vector. Use ode45 to solve for z up to x=4."
I am fairly new to MATLAB but the code I wrote is this:
function yprime = ex3_2ndorder(x,y)
%name and date
yprime=zeros(2,1);
yprime(1)=y(2);
yprime(2)=exp(x)-4*y(2)-3*y(1);
end
However, when I try to run it, I get an error message saying "Not enough input arguments. Error in line 4, yprime(1)=y(2);"
Could someone please tell me if my code is correct and why I am receiving this error? Thanks!!
0 Comments
Accepted Answer
darova
on 18 Oct 2019
You are almost there! Yyou written function for ode45 but you didn't use it!
function yprime = ex3_2ndorder(x,y)
%name and date
yprime=zeros(2,1);
yprime(1)=y(2);
yprime(2)=exp(x)-4*y(2)-3*y(1);
end
Create new script (new script) and type
[t,y] = ode45(@ex3_2ndorder,[0 4],[0 2]);
plot(t,y)
4 Comments
darova
on 18 Oct 2019
Is yprime(1)=y(2) incorrect?
Yes, it is ok
You should run the main script and the function should be saved as a separate file (named exactly as ex3_2ndorder)
OR you can write it in only one script!
F = @(x,y) [y(2); exp(x)-4*y(2)-3*y(1)];
[t,y] = ode45(F,[0 4],[1 2]);
plot(t,y)
More Answers (0)
See Also
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!