Borrar filtros
Borrar filtros

BVP4c Solving two equations simultaneously

3 visualizaciones (últimos 30 días)
Taylor Nichols
Taylor Nichols el 24 de En. de 2019
Respondida: Torsten el 25 de En. de 2019
Say for example I have an 4th order ODE
y''' = A*y''+y
on the boundary [0 1] with the BC
y(0) = 1; y'(0) = 0; y(1) = 2; y'(1) = 0
I have my code setup like this.
init = bvpinit(linspace(0,1,10),[0,0,0,0]);
sol = bvp4c(@rhs_bvp, @bc_bvp, init);
x1 = linspace(0,1,100);
BS = deval(sol, x1);
function [ rhs ] = rhs_bvp( x, y )
A = 10;
rhs = [y(2);
y(3);
y(4);
A*y(3)+y(1)];
end
function [ bc ] = bc_bvp( yl, yr)
bc = [yl(1) - hi;
yl(2);
yr(1) - ho;
yr(2)];
end
Now Say I want to add another equation to solve simultaneously
V' = y
on the same boundary with BC
V(0) = 0; V(1) = 1
How would I go about including this new equation into this solver?
  1 comentario
David Goodmanson
David Goodmanson el 25 de En. de 2019
Hi Taylor,
If you start with (your original expression was a typo)
y'''' = A*y''+ y
and plug in y = V', you obtain a fifth order differential equation. But now you have six boundary conditions,which appears to be one too many.

Iniciar sesión para comentar.

Respuestas (1)

Torsten
Torsten el 25 de En. de 2019
init = bvpinit(linspace(0,1,10),[0,0,0,0,0]);
sol = bvp4c(@rhs_bvp, @bc_bvp, init);
x1 = linspace(0,1,100);
BS = deval(sol, x1);
function [ rhs ] = rhs_bvp( x, y )
A = 10;
rhs = [y(2);
y(3);
y(4);
A*y(3)+y(1);
y(1)];
end
function [ bc ] = bc_bvp( yl, yr)
bc = [yl(1) - hi;
yl(2);
yr(1) - ho;
yr(2)
yl(5)];
%or yr(5)-1.0];
end

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by