How do I use a step function in Boundary value problem ?

3 次查看(过去 30 天)
Hi,
. I am using sol = bvp4c(odefun,bcfun,solinit). I don't know how to include a step function in my differential equation defined in odefun. Is it possible to do so or odefun can only handle predefined functions? Thankyou for reading. Any suggestion is highly appreciated.
  9 个评论
Bjorn Gustavsson
Bjorn Gustavsson 2022-11-11
Fourth derivatives brings back memories (very very vague ones) of the one course in solid mechanics and bending beams and bridges. There we had tables of solutions for different kinds of loads and end-conditions. If this is your problem it might be possible to piece together a solution from such characteristic solutions that fits these conditions.

请先登录,再进行评论。

回答(1 个)

Gaurav Singh
Gaurav Singh 2022-11-11
Thankyou all. I guess, I have figured it out. For now, I am able to use heaviside function in my problem. Here is the code;
function dydx = mat4ode(x,y,lambda) % equation being solved
global k
dydx = [y(2)
y(3)
y(4)
2*k^2*y(3)-(1*(-heaviside(x+1)+heaviside(x-1)+0.5)+lambda)*y(1)];
end
  2 个评论
Torsten
Torsten 2022-11-11
编辑:Torsten 2022-11-11
This will introduce jumps at x+1 and x-1 for every point x of your grid vector. I doubt that this is what you want.
Gaurav Singh
Gaurav Singh 2022-11-11
编辑:Gaurav Singh 2022-11-11
Thanks for your comment Torsten. Can you please elaborate more on this. May be I am missing something important here. From my understanding, as its a forth order DE, the solver gives me continuous function up to order three. The third derivative is having sharp corner at x=+1 and -1.
I belive fourth derivative will be discontinuous. Is there any fundamental err in suppyling heaviside function directly in DE in Matlab?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Boundary Value Problems 的更多信息

产品


版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by