# Solve differential equation using ode23 and ode45

2 ビュー (過去 30 日間)
emonhossain roy 2019 年 6 月 24 日
コメント済み: Pullak Barik 2019 年 6 月 25 日
Question: solve the differential equation regarding y as the independent variable rather than x. Also find solution for x(0)=1. Finally plot y vs x(y). Also use ode23 and ode45 to solve the equation and plot again.
My approach:
code:
syms x(y);
eqn=diff(y,x)==(x+y*exp(y));
cond=x(0)==1;
dsolve(eqn,cond)
But now how to use ode23 or ode45 and how to plot? Any solution will be appreciated .

#### 3 件のコメント

Star Strider 2019 年 6 月 24 日
This does not appear to be the same expression as the one you posted in LaTeX:
eqn=diff(x,y)==(x+y*exp(y));
One of them is in error.
emonhossain roy 2019 年 6 月 24 日
@Star Strider I edited my post
Torsten 2019 年 6 月 25 日
No, you didn't since you still write
eqn=diff(y,x)==(x+y*exp(y));

サインインしてコメントする。

### 採用された回答

Pullak Barik 2019 年 6 月 25 日
Firstly, as correctly mentioned in the comments, the eqn variable should be written as-
eqn = diff(x, y) == (x + y*exp(y));
Now, for plotting the solution, you can use fplot- fplot documentation
xSol = simplify(dsolve(eqn, cond)); %simplify, as the name suggests, simplifies the expression obtained after dsolve
fplot(xSol);
Now, about using ode23 or ode45, I suggest you to refer to the documentation to gain an understanding on the same. I am posting a code below which uses ode45 (referred directly from the documentation)-
[y, x] = ode45(@(y, x) (x + y*exp(y)), [-10 10], 1)

#### 1 件のコメント

Pullak Barik 2019 年 6 月 25 日
You can use plot(y, x) after using the ode45 code above to plot the result

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!

Translated by