# Solve nonlinear 2nd order ODE numerically

조회 수: 2(최근 30일)
Lucas 2022년 7월 28일
댓글: MOSLI KARIM 2022년 8월 12일
I need to solve the following nonlinear 2nd order ODE, that is, find such that I tried using
>> syms y(x)
>> ode = -diff(y,x,2)/(1+(diff(y,x))^2)^(3/2) == 1-x;
>> ySol(x) = dsolve(ode)
but it doesn't work since apparently there is no anaylitical solution (if I rearrange the terms it does find a system of complex solutions, but I think the it is not right).
Isn't there a command to solve ODEs numerically? I am expeting something like the family of plots from here https://www.wolframalpha.com/input?i=f%27%27%28t%29%2F%28%281%2B%28f%27%28t%29%29%5E2%29%5E%283%2F2%29%29+%3D+-%281-0.25t%29
Many thanks oin advance!
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Lucas 2022년 7월 29일
My idea was to screen these conditions to find one that satisfies my problem.

댓글을 달려면 로그인하십시오.

### 채택된 답변

Sam Chak 2022년 7월 28일
You can follow the example here
and try something like this:
tspan = [0 1.15];
y0 = [1 0]; % initial condition
[t,y] = ode45(@(t, y) odefcn(t, y), tspan, y0);
plot(t, y(:,1)), grid on, xlabel('t') function dydt = odefcn(t, y)
dydt = zeros(2,1);
c = 0.25;
dydt(1) = y(2);
dydt(2) = - (1 - c*t)*(1 + y(2)^2)^(3/2);
end
##### 댓글 수: 1표시숨기기 없음
Lucas 2022년 7월 29일
That worked, thanks!

댓글을 달려면 로그인하십시오.

### 추가 답변(2개)

James Tursa 2022년 7월 28일
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

댓글을 달려면 로그인하십시오.

MOSLI KARIM 2022년 8월 12일
function pvb_pr13
tspan=[0 1.5];
y0=[1 0];
[x,y]=ode45(@fct,tspan,y0);
figure(1)
hold on
plot(x,y(:,1),'r-')
grid on
function yp=fct(x,y)
c=0.25;
yp=[y(2);-(1-c*x)*((1+(y(2))^2)^(3/2))];
end
end
##### 댓글 수: 1표시숨기기 없음
MOSLI KARIM 2022년 8월 12일
you can used this code for solved your problem

댓글을 달려면 로그인하십시오.

R2018a

### Community Treasure Hunt

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

Start Hunting!