24小时热门版块排行榜    

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

lixingxun

铁虫 (初入文坛)

[求助] Matlab: 用bvp解二阶微分方程(边界值)遇到困难,请高手指点

遇到的error是??? Error using ==> bvp4c
Unable to solve the collocation equations -- a singular Jacobian encountered
Error in ==> xBVP1 at 18
sol = bvp4c(@ODEfun,@BCfun,solinit)

下面是我的code

function xBVP1
clear all
clc
global r A d u1 L u2 p1 p2;
r=30E-3;%water/oil surfac tension(N/m)
A=pi/6; %water/oil pore contac angle
d=155E-6;%size (m)
u1=6.14E-03; %oil viscosity(Pa.s)
L=2.2E-2; %total length (m)
u2=8.94E-04;%water viscosity(Pa.s)
p1=738.5; % oil density
p2=998.2;% water density
% ------------------------------------------------------------------
a=0;
b=180;
solinit = bvpinit(linspace(a,b,10),[0 0]);
sol = bvp4c(@ODEfun,@BCfun,solinit)
format long
y=deval(sol,sol.x);
plot(sol.x,sol.y);legend('y1','y2')
% ------------------------------------------------------------------
function dydx=ODEfun(x,y)
global r A d u1 L u2 p1 p2;
dydx=[y(2);(4*r*cos(A)/d-32*(u1*L-(u2-u1)*y(1))*y(2)/d^2-(p2-p1)*y(2)^2)/(p1*L+(p2-p1)*y(1))];

% ------------------------------------------------------------------   
function bc=BCfun(ya,yb)
bc=[ya(1); yb(1)-0.006709];
回复此楼

» 猜你喜欢

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

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

lixingxun

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2012-08-29 09:22:17
如可能,请把初始、边界条件、公式等用文本格式描述重新清楚。

谢谢,您的回复!我用文本把我的方程具体信息又描述了一下,希望能得到您的指点

%微分方程:
%y''=(4*r*cos(A)/d-32*(u1*L-(u2-u1)*y)*y')/d^2-(p2-p1)*y'^2)/(p1*L+(p2-p1)*y)
%边界值:y(0)=0; y(180)=0.006709
%初值:y(0)=0; y'(0)=0
3楼2012-08-29 18:51:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
如可能,请把初始、边界条件、公式等用文本格式描述重新清楚。
2楼2012-08-29 09:22:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

xzhdty: 谢谢参与 2012-08-31 22:50:58
如果有:初值:y(0)=0; y'(0)=0,那就成为初值问题了;
如果:y(0)=0; y(180)=0.006709,就是两点边值问题。

你想得是哪种啊。
4楼2012-08-30 09:48:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lixingxun

铁虫 (初入文坛)

引用回帖:
4楼: Originally posted by dingd at 2012-08-30 09:48:16
如果有:初值:y(0)=0; y'(0)=0,那就成为初值问题了;
如果:y(0)=0; y(180)=0.006709,就是两点边值问题。

你想得是哪种啊。

谢谢您的回复,我要用边界值。我指的初值是初始猜想值
5楼2012-08-30 21:25:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见