How to solve ODE with symbolic conditions
조회 수: 2 (최근 30일)
이전 댓글 표시
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
채택된 답변
Raunak Gupta
2020년 5월 29일
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
Raunak Gupta
2020년 5월 29일
편집: Raunak Gupta
2020년 5월 29일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!