繁体   English   中英

非线性微分方程,如何在MATLAB中数值求解?

[英]Nonlinear differential equation, how do I solve this numerically in MATLAB?

我一直在一个项目中,我需要找到给定非线性微分方程的解决方案,请参见下图:

在此处输入图片说明 现在,我尝试使用matlabs内置函数bvp4c,但是语法很困难,我不知道结果是否可靠。 对于某些值,bvp4c函数只会生成一个错误。 我还考虑了边界条件,请参见下图:

在此处输入图片说明

在此处输入图片说明

对不起,这些数字太大了。 现在我知道这不是一个数学论坛,但是我需要从数字上解决这个问题,我想用可用的最佳方法解决它。 到目前为止,我的代码如下所示:

function [theta_0 y2]=flow_BVP

theta_0=linspace(0,1,1000); % pi/18
solinit2=bvpinit(theta_0,[0 1 1]);
sol2=bvp4c(@flow_ode,@flow_bc,solinit2);
x2=sol2.x;
y2=sol2.y(1,:);


hold on
%plot(x1,y1) %gammal
plot(x2,y2) %ny
%hold off


function v=flow_init(x)
v=[sin(x); 1; 1];

function dydx=flow_ode(x,y)
q=0.0005;
v=1;
dydx = [y(2); y(3); 2*q/v*y(1)*y(2)-4*y(2)];

function res=flow_bc(ya,yb)
res=[ya(1);yb(1);ya(2)-5.59];

重复我的问题,哪种是最好的方法,最容易,最简单的理解和实现方法是解决该问题? 射击吧?

最好的问候SimpleP。

编辑到目前为止,我得到的结果是 在此处输入图片说明

该图显示了f与\\ theta的关系。 积分应为1。

合并积分的一般方法是将f的反导数F添加到ODE系统中。 也就是说,作为第四部分和变量

F' = f  with   F(0)=0,  F(alpha)=1

而其他组件则需要转移一个索引,

function v=flow_init(x)
v=[sin(x); 1; 1; 1-cos(x)];

function dydx=flow_ode(x,y)
% y is [ f, f', f'', F ]
q=0.0005;
v=1;
dydx = [y(2); y(3); 2*q/v*y(1)*y(2)-4*y(2); y(1)];

function res=flow_bc(ya,yb)
res=[ya(1); ya(4); yb(1); yb(4)-1];

使用python:

q, v = 0.0005, 1
def flow_ode(t,u): return [ u[1], u[2], 2*q/v*u[0]*u[1]-4*u[1], u[0] ]

def flow_bc(u0, u1): return [ u0[0], u0[3], u1[0], u1[3]-1 ]

x = x_init = np.linspace(0,1,11);
u_init = [ 6*x*(1-x), 0*x, 0*x, x ]

res = solve_bvp(flow_ode, flow_bc, x_init, u_init, tol = 1e-5)

print res.message
if res.success:
     x = x_sol = np.linspace(0,1,201);
     u_sol = res.sol(x_sol);
     plt.subplot(2,1,1)
     plt.plot(x_sol, u_sol[0]); plt.plot(x, 6*x*(1-x), lw=0.5); plt.grid()
     plt.subplot(2,1,2)
     plt.plot(x_sol, u_sol[3]); plt.grid()
     plt.show()

解和反导图

可以看到,这里的初步猜测非常接近。 由于ODE是4f'+f'''=0的小扰动,因此解必须接近其解a+b*sin(2x)+c*cos(2x) ,其边界条件为

f(x)=A * [ (1-cos(2))*sin(2*x)-sin(2)*(1-cos(2*x)) ]
    = 4*A*sin(1) * sin(x)*sin(1-x)

A使得积分为1。


如果将ODE中的参数值切换为q=1v=0.0005 ,则解决方案将具有大小为sqrt(v/q)边界层。 另一种情况的情节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM