Filter löschen
Filter löschen

BVP4c Solving two equations simultaneously

3 Ansichten (letzte 30 Tage)
Taylor Nichols
Taylor Nichols am 24 Jan. 2019
Beantwortet: Torsten am 25 Jan. 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 Kommentar
David Goodmanson
David Goodmanson am 25 Jan. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Torsten
Torsten am 25 Jan. 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

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by