how to numerical solve d2y/dx2+f(x)dy/dx+y=0 in matlab. if f(x)=x^2+2x+1

18 次查看(过去 30 天)
solving ODE for boundary condition y(0)=1,y(2)=10

回答(1 个)

Triveni
Triveni 2016-1-2
编辑:Triveni 2016-1-2
syms x y;
f=x^2+2*x+1;
df= diff(f);
d2f = diff(df);
solution = d2f + f *(df) + y;
i don't know whya re are you using isequalto 0 in "d2y/dx2+f(x)dy/dx+y=0"
or
syms x y;
f=x^2+2*x+1;
dy = diff(y);
d2y = diff(dy);
solution = d2y + f* dy + y;
  3 个评论
Walter Roberson
Walter Roberson 2016-1-3
Well the symbolic solution is
HeunT(3^(2/3), -3, 0, (1/3)*3^(2/3)*(x+1)) * (exp(-26/3) * HeunT(3^(2/3), -3, 0, 3^(2/3)) * (int(exp((1/3)* z1 * (z1^2 + 3*z1+3)) / HeunT(3^(2/3), -3, 0, (1/3)*3^(2/3) * (z1+1))^2, z1, 0, 2)) - (int(exp((1/3) * z1*(z1^2+3*z1+3)) / HeunT(3^(2/3), -3, 0, (1/3)*3^(2/3)*(z1+1))^2, z1, 0, x)) * (exp(-26/3) * HeunT(3^(2/3), -3, 0, 3^(2/3)) - 10 * HeunT(3^(2/3), -3, 0, (1/3)*3^(2/3)))) * exp(-(1/3) *x * (x^2 + 3*x + 3)) / (exp(-26/3) * HeunT(3^(2/3), -3, 0, 3^(2/3)) * (int(exp((1/3)*z1 * (z1^2 + 3*z1+3)) / HeunT(3^(2/3), -3, 0, (1/3)*3^(2/3) * (z1+1))^2, z1, 0, 2)) * HeunT(3^(2/3), -3, 0, (1/3)*3^(2/3)))
where z1 is a temporary variable of integration.
Notice the three unresolved integrals for which there is no known closed form solution. The symbolic solution might tell you what you need to calculate but it is not a numeric solution at all, and the original poster specifically asked for a numeric solution.

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by