dsolve problem gives error
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
M = 2; Kp = 5; Gr = 0.1; Gc = 0.1; L = 0.05; Pr = 1; S1 = 0.1; Sc = 0.78; Kc = 0.1;
syms x f0(x) g0(x) h0(x) f(x) g(x) h(x)
eqn0 = [ diff(f0,3) == 0, diff(g0,2) == 0,diff(h0,2) == 0 ];
cond0 = [f0(0) == 0, subs(diff(f0),0) == 0, subs(diff(f0),5) == 1, g0(0) == 1, g0(5) == 0, h0(0) == 1, h0(5) == 0];
F0 = dsolve(eqn0,cond0); f0 = F0.f0; g0 = F0.g0; h0 = F0.h0;
for k = 1:3
eqn = [ diff(f,3) + (1/2)*(f0*diff(f,2) + f*diff(f,2) + f*diff(f0,2)) - (M^2+Kp)*diff(f) + Gr*g + Gc*h == 0,diff(g,2) + Pr*( (1/2)*(f0*diff(g)+f*diff(g)+f*diff(g0)) + S1*g ) == 0, diff(h,2) + Sc *( (1/2)*(f0*diff(h)+f*diff(h)+f*diff(h0)) + Kc*h ) == 0];
cond = [f(0) == 0, subs(diff(f),0) == 0, subs(diff(f),xb) == 0, g(0) == 0, g(xb) == 0, h(0) == 0, h(xb) == 0];
F = dsolve(eqn,cond); f(k) = F.f;
end
fH = f0 + f1 + f2 + f3; fA = collect(fH,x);
figure(1),fplot(fA,[0 5],'LineWidth',2),xlabel('\bfx'); ylabel('\bff(x)');hold on
Risposte (1)
Walter Roberson
il 13 Apr 2022
xb not defined.
You are trying to create two boundary conditions for the same function, such as diff(f(x)) evaluated at xb = 0. dsolve cannot deal with multiple boundary conditions for the same derivative of the same function.
dsolve without boundary conditions solves to generate the form f(x) + C with unknown constant C. When you provide a boundary condition then it takes that f(x)+C and substitutes in the boundary location and equates to the known boundary value, such as f(0)+C = known and then solves for the constant. There are no remaining degrees of freedom to solve a second boundary at the same derivative level; such things would require solving for other variables.
Vedere anche
Categorie
Scopri di più su Calculus in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!