function res = mat4bc(ya,yb)
res = [ ya(1)-1
yb(2)
ya(3)
yb(4) ];
The above is for 2 boundary conditions. I need the coding for 3 conditions.
function sol=ex4
ex4init=bvpinit(linspace(0,100),[0 1 0 -1]);
sol=bvp4c(@ex4ode, @ex4bc, ex4init)
end
function f=ex4ode(x,y)
f=[y(2)
-x*x*y(2)
y(4)
-x*x*y(4)
];
end
function res=ex4bc(ya,yb,yc)
res=[ya(1)-3.462*10^(-22)
ya(3)-2.017
yb(1)-1
yb(3)
yc(2)+yc(4)
];
end
This is my program. when I run this program, I'm getting an error. Can someone tell me what is the error here?

댓글 수: 6

Torsten
Torsten 2019년 6월 27일
You can define boundary conditions for the solution variables at x=a (using ya) and at x=b (using yb). So I don't understand what yc is meant to represent in your code.
Maybe you could include the mathematical description of your problem.
Joy Salomi
Joy Salomi 2019년 6월 27일
These are my boundary conditions.
At x=infinity, u=1, v=0
At x=0, u=3.462*10^-22 and v=2.017
At x=lambda, du/dx = - dv/dx
what is the matlab code for this?
Torsten
Torsten 2019년 6월 27일
Your solutions for u and v are already determined by the four conditions at x=0 and x=infinity. You can't impose a fifth boundary condition.
Joy Salomi
Joy Salomi 2019년 6월 27일
Okay sir. Thank you so much for your response. I'll try.
Torsten
Torsten 2019년 6월 27일
편집: Torsten 2019년 6월 27일
Maybe of interest for you:
This code gives you the solution for your system:
function main
fun = @(t,c1,c2)c1*gamma(1/3)*gammainc(t.^3/3,1/3,'upper')/3^(2/3)+c2;
c2u = 1;
c1u = (3.462e-22-1)*3^(2/3)/gamma(1/3);
c2v = 0;
c1v = 2.017*3^(2/3)/gamma(1/3);
t = linspace(0,20,200);
u = fun(t,c1u,c2u);
v = fun(t,c1v,c2v)
plot(t,u,t,v)
end
Maybe your question was to determine lambda where du/dx = -dv/dx ?
Joy Salomi
Joy Salomi 2020년 3월 4일
Thank you for your reply Sir.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

태그

질문:

2019년 6월 27일

댓글:

2020년 3월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by