Getting General Solution Using dsolve

조회 수: 19 (최근 30일)
Sidaard Gunasekaran
Sidaard Gunasekaran 2019년 9월 11일
답변: Guru Mohanty 2020년 1월 21일
I am trying to solve the equation below
ode(x) =
clc;clear
syms y(x)
RHS = (y + x*(x^2 + y^2)^(1/2))/(x - y*(x^2 + y^2)^(1/2))
ode = diff(y,x) == RHS
ysol = dsolve(ode,'IgnoreAnalyticConstraints', false)
But it is saying that it is unable to find explicit solution. In Wolfram Alpha however, the general solution came out to be
sqrt(x^2 + y(x)^2) + tan^(-1)(x/y(x)) = c_1
How do I get this in Matlab?

답변 (1개)

Guru Mohanty
Guru Mohanty 2020년 1월 21일
Hi, I understand that you are not able to find solution through dsolve. The function dsolve can solve differential equations when variables are separable. However you can solve this differential equation using MATLAB Numerical Solver ode45. Here is a sample code.
tspan = -5:0.5:5; % Interval of Integration
y0 = 0; % Initial Condition
[x,y] = ode45(@(x,y)odefun(x,y), tspan,y0);
plot(x,y);
function dydx = odefun(x,y)
dydx = (y + x.*(x.^2 + y.^2).^(1/2))/(x - y.*(x.^2 + y.^2).^(1/2));
end
pde_case.asv.jpg

카테고리

Help CenterFile Exchange에서 Equation Solving에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by