www.gusucode.com > 高等数学问题求解源码程序 > CH14/SeparableVarsDE.m

    function varargout=SeparableVarsDE(F,G,x,y,varargin)
%SEPARABLEVARSDE   可分离变量方程的求解
% L=SEPARABLEVARSDE(F,G,X,Y)  求微分方程G(Y)dY=F(X)dX的通解
% L=SEPARABLEVARSDE(F,G,X,Y,COND)  求微分方程G(Y)dY=F(X)dX满足条件COND的特解
%
% 输入参数:
%     ---F,G:关于X和Y的函数
%     ---X,Y:函数F和G的自变量
%     ---COND:初值条件
% 输出参数:
%     ---L:微分方程的解
%
% See also int, solve

Iy=int(F,x);
Ix=int(G,y);
syms C real
I=Iy-Ix-C;
if nargin==4
    varargout{1}=[char(I),'=0'];
elseif nargin==5
    cond=varargin{:};
    k1=strfind(cond,'(');
    k2=strfind(cond,')');
    k3=strfind(cond,'=');
    x0=sym(cond(k1(1)+1:k2(1)-1));
    y0=sym(cond(k3+1:end));
    C1=solve(subs(I,{x,y},{x0,y0}),C);
    varargout{1}=[char(subs(I,C,C1)),'=0'];
else
    error('Illegal input arguments.')
end
web -broswer http://www.ilovematlab.cn/forum-221-1.html