Unexpected error
function dFdx=funode(x,F)
global Lamda
global K1
global P
dFdx=[F(2) ; -K1*P+F(1)*Lamda^2];
function res=myfunbc(Fa,Fb)
global P
res=[Fa(1) ; Fb(1)-P];
solinit=bvpinit(linspace(0,l,2),[1 0]);
sol = bvp4c(@funode,@myfunbc,solinit);
x = linspace(0,l);
F = deval(sol,x);
After that i have an error The derivative function ODEFUN should return a column vector of length 2. why?

 Accepted Answer

James Tursa
James Tursa on 29 Sep 2017
Edited: James Tursa on 29 Sep 2017
Make it a column vector as requested:
dFdx=[F(2) ; -K1*P+F(1)*Lamda^2];

11 Comments

still the same error
What about the other function:
res=[Fa(1) ; Fb(1)-P];
Nadim Mhanna
Nadim Mhanna on 29 Sep 2017
Edited: Nadim Mhanna on 29 Sep 2017
i did corrected both but didn't work
What is the size of each of the variables K1, P, and Lamda?
Nadim Mhanna
Nadim Mhanna on 29 Sep 2017
Edited: Nadim Mhanna on 29 Sep 2017
They are constants i.e. k1=5 Lamda=13 P=252
Where is the value of P coming from in your lines
function res=myfunbc(Fa,Fb)
res=[Fa(1) Fb(1)-P];
You are not using the form of "function" that would allow P to be a shared variable.
I did it by entering global P
For all the variables I put the global value that i did assign but still not working
Walter Roberson
Walter Roberson on 30 Sep 2017
Edited: Walter Roberson on 30 Sep 2017
When you use a global variable, it is not uncommon for the global variable to turn out to be empty at the time it is used.
okay got it Thanks all
Jan
Jan on 30 Sep 2017
@Nadim Mhanna: Please do not use flags to mark a "best answer". Flagging is thought to inform admins and editors, that a contribution needs attention, because it violates the terms of use, e.g. by rudeness.

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Asked:

on 29 Sep 2017

Commented:

Jan
on 30 Sep 2017

Community Treasure Hunt

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

Start Hunting!