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

Antworten (1)

Triveni
Triveni am 2 Jan. 2016
Bearbeitet: Triveni am 2 Jan. 2016
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 Kommentare

Not syms y, rather syms y(x)
The "= 0" is important as it imposes a Differential Equation (ODE in this case) upon it all: the problem becomes to find y(x) such that the equation holds.
There is a symbolic solution that dsolve() might be able to find, a solution that involves a number of invocations of HeunT, and some of those are inside integrals that have no closed form solution. Finding a numeric solution rather than a symbolic solution is therefore appropriate.
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.

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by