Finding Intersection Points between 3rd Order ODE and a line
4 次查看(过去 30 天)
显示 更早的评论
How can I find the intersection points between the solution of a 3rd order ODE and a line y=x?
My ODE's code is
sol=dsolve('D3y-4*D2y+Dy+2*y=0,y(0)=-4,Dy(0)=-6,D2y(0)=-4')
x=0:2
y=subs(sol,'t',x)
plot(x,y)
0 个评论
采纳的回答
Andrew Newell
2011-2-7
The solution of this equation is a symbolic function sol(t):
sol=dsolve('D3y-4*D2y+Dy+2*y=0,y(0)=-4,Dy(0)=-6,D2y(0)=-4');
sol(t)=t is the same as sol(t)-t = 0:
syms t
functionToBeZeroed = sol - t;
Turn this into a numerical function f(x):
f = matlabFunction(functionToBeZeroed);
You can calculate f(x) for any value of x. A plot shows that the curve crosses zero near about x=1.6.
x = 0:.01:2;
plot(x,f(x))
fzero(f,1.6)
EDIT: This answer has been revised to expand the explanatory text.
2 个评论
Andrew Newell
2011-2-8
I have added some more explanation above. Please note that your simple function is actually sin; the argument t is just the name you choose for the input and the specific values t=0:.3:10 are just a set of numbers you could calculate the sine of. It would be the same to calculate y=sin(x) for x=0:.3:10. To solve sin(x)=x, define f(x) = sin(x)-x and find the zero.
If, on the other hand, you are really trying to solve sin(t)=x, the question is meaningless.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!