2017-10-13 148 views
-1

我想解微分方程。 MATLAB显示警告:dsolve MATLAB:无法找到明确的解法

clear all 
syms x f(x) theta 
eq = (-6*x+(-7+theta)*f*diff(f,x))*(1+diff(f,x)^2)+x*f*(diff(f,x,x))==0 
cond = f(0)==1 
dsolve(eq,cond) 

Warning: Explicit solution could not be found. 
> In dsolve (line 201) 
    In dsolvef (line 5) 

ans = 

[ empty sym ] 

是否有解决这个问题的方式(分析或数值) 谢谢

+2

不要删除和reask同样的问题。你以前的问题→https://stackoverflow.com/q/46720078/ –

回答

0

有一个非常高的概率,没有象征性的解决方案存在?一般而言,具有符号解决方案的ODE集合是“薄”的,因为符号可解ODE的微小变化使其无法解决。

对于数值解决方案,使用ode45求解器或隐式求解器,如ode15。所有人都需要一个ODE函数,将ODE编码为显式的1阶系统。

function dz = derivs(x,z) 
    y=z(1); dy = z(2) 
    ddy = -(-6*x+(-7+theta)*y*dy)*(1+dy^2)/(x*y) 
    dz = [ dy ddy ] 
end 

也见类似的主题: