How to solve ODE with symbolic conditions
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Aleksander Tyczynski
le 24 Mai 2020
Commenté : Aleksander Tyczynski
le 29 Mai 2020
Hello,
I have an issue with the boundary conditions for this ODE. With the code as is it assumes that Dw is a function of a not that for r it should subsitute a. How can I solve this?
clear; clc;
syms a P G t nu F Q r D w(r)
F = - pi * a^2 * P
Q = (pi*r^2*P) / (2*pi*r)
ode = diff(((1/r)*diff((r*diff(w,r)),r)),r) == Q/D
Dw = diff(w,r);
cond1 = Dw(0) == 0
cond2 = Dw(a) == 0
cond3 = w(a) == 0
conds = [cond1 cond2 cond3];
wSol(r) = dsolve(ode,conds)
In all I try to solve this ODE:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/299313/image.png)
with the following 3 BC:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/299318/image.png)
Thank you,
0 commentaires
Réponse acceptée
Raunak Gupta
le 29 Mai 2020
Hi,
I tried to solve the differential equation with the given code and I see that the returned wSol(r) is a function of r only and not a. Also, DW too is a function of r if you check in the workspace about the independent variable present for DW. I checked the solution too and it looks correct to me.
This is the solution I got.
wSol(r) = (P*a^4 - 2*P*a^2*r^2 + P*r^4)/(64*D);
You may want to check again about the correctness of the solution.
7 commentaires
Raunak Gupta
le 29 Mai 2020
Modifié(e) : Raunak Gupta
le 29 Mai 2020
Hi,
I tried running the script in MATLAB R2019b and didn't get the solution. So, I brought this issue to the notice of our developers, they may investigate further. As I also ran the script in R2020a and R2019a and I was getting the solution, the current workaround will be to try running the script in any of the two release I mentioned.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!