MATLAB中文论坛

标题: desolve函数运算结果与解不符 [打印本页]

作者: Quay    时间: 2021-6-5 09:28
标题: desolve函数运算结果与解不符
微分方程:
[latex]\begin{cases} \ (1-x)\cdot\frac{\mathrm{d^2}y}{\mathrm{d}x^2}=\frac{1}{5}\sqrt{1+\frac{\mathrm{d^2}y}{\mathrm{d}x^2}}, & 0<x<=1, \\ \ y(0)=0, y'(0)=0. \\ \end{cases}[/latex]

解:
[latex]y=-\frac{5}{8}(1-x)^{\frac{4}{5}}+\frac{5}{12}(1-x)^{\frac{6}{5}}+\frac{5}{24}[/latex]
[latex]y=\frac{5}{8}(1-x)^{\frac{4}{5}}-\frac{5}{12}(1-x)^{\frac{6}{5}}-\frac{5}{24}[/latex]

我的代码:
  1. clearvars;
  2. syms y(x);
  3. dy=diff(y,x);
  4. eqn=(1-x)*diff(y,x,2)-sqrt(1+dy.^2)/5==0;
  5. con=[y(0)==0,dy(0)==0]
  6. y=dsolve(eqn,con)
复制代码


结果:
y =

(5*(3*(x - 1)^(4/5) - (-1)^(4/5) + 2*(-1)^(3/5)*(x - 1)^(6/5)))/(24*(-(-1)^(3/5))^(1/2))
                - (5*(-1)^(1/5)*(x - 1)^(4/5))/8 - (5*(-1)^(4/5)*(x - 1)^(6/5))/12 - 5/24

想问一下哪里有问题,谢谢了!


作者: TouAkira    时间: 2021-6-5 10:13
图里方程根号下的部分是二阶导数,怎么到了代码sqrt里面就成了一阶导数的平方?
作者: 深蓝孩童    时间: 2021-6-5 10:17
考虑你的代码写对的情况,MATLAB给出的解就是你要的解,见下图。只不过,不太清楚为什么不能继续简化,simplify不能继续简化 (-1)^(4/5)了,就离谱。
(, 下载次数: 0)