24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4488  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

acnes

金虫 (正式写手)

[求助] matlab数值求解边界条件微分方程组

期望高手指点一下我的疑问,指出一个大方向也好,我现在就是处于无从下手的阶段,求点拨
解一个方程组,文献上给出了如下的形式:
du/dx+dv/dx=0
u=dn/dx
v=-dm/dx
du/dx=-exp(-x)+n*m/(m+n)
边界条件和初值条件
u(p)=0,u(0)=v(p),v(0)=0
n(0)=q
其中函数自变量为x,边界条件和初值条件中p为常量,q为变量

按照matlab求解边界条件微分方程bvp4c方法,我进行了如下处理:
y(1)=n,y(2)=m,y(3)=u,y(4)=v
y'(1)=y(3),y'(2)=-y(4),y'(3)=-exp(-x)+y(1)*y(2)/(y(1)+y(2)),y'(4)=exp(-x)-y(1)*y(2)/(y(1)+y(2))

方程M文件
function dydx=ivode(x,y)
dydx=[y(3);-y(4);-exp(-x)+2*y(1)*y(2)/(2*y(2)+y(1));exp(-x)-2*y(1)*y(2)/(2*y(2)+y(1))];

边界条件M文件
function res=ivbc(ya,yb)
res=[ya(1)-q;ya(4);yb(3);ya(3)-yb(4)];

command:
solinit=bvpinit(linspace(0,1,10),[1 1 0 0]);
sol=bvp4c(@ivode,@ivbc,solinit);
??? Error using ==> bvp4c
Unable to solve the collocation equations -- a singular Jacobian encountered

请问这个问题怎么解决呢?还有边界条件中u(0)=v(p)是否必须需要等于一个常量,方程组才能给出数值解。手工处理du/dx=-exp(-x)+n*m/(m+n)方程,分离变量也没弄明白。。。曾经学的高数都还给老师了。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai(金币+1): 谢谢应助! 2011-12-21 22:26:07
边界条件微分方程bvp4c是求数值解的,你整一些符号进去是不可能得到结果的
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
6楼2011-12-21 11:17:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 acnes 的主题更新
信息提示
请填处理意见