24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4479  |  回复: 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的回帖

acnes

金虫 (正式写手)

嗯,了解了。就是不太明白文献中是如何通过上面的微分方程,将边界条件与u函数建立的函数关系。
7楼2011-12-21 13:05:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

wangyuewu08

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai(金币+1): 谢谢应助! 2011-12-21 22:25:39
acnes(金币+20): ★★★很有帮助 嗯,非常感谢积极的回复! 2011-12-22 15:56:40
我对微分方程组不是很了解,把楼主的代码运行了之后,系统出现了下面的错误:
CODE:
??? Undefined function or variable 'q'.

Error in ==> ivbc at 2
res=[ya(1)-q;ya(4);yb(3);ya(3)-yb(4)];

我试着把边界条件中q的值改为1,运行之后没有报错,得到了两个结构体变量。
所以啊,问题应该出在q这个变量上,既然是数值解法,那么边界条件中不应该有变量。
往事并不如烟
2楼2011-12-20 18:38:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

acnes

金虫 (正式写手)

=。= 我也改成q=1,为啥还是这个结果呢。。。原本我运算的时候也是设定了q值的。
??? Error using ==> bvp4c
Unable to solve the collocation equations -- a singular Jacobian encountered
3楼2011-12-20 19:08:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)


xiegangmai(金币+1): 谢谢参与! 2011-12-21 22:25:55
引用回帖:
3楼: Originally posted by acnes at 2011-12-20 19:08:24:
=。= 我也改成q=1,为啥还是这个结果呢。。。原本我运算的时候也是设定了q值的。
??? Error using ==> bvp4c
Unable to solve the collocation equations -- a singular Jacobian encountered

我将方程、边界条件、command单独放在三个文件中,修改q之后可以运行出结果。
方程、边界条件的M文件的名字要与函数的名字一致。
往事并不如烟
4楼2011-12-20 20:10:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见