我一直在做一个项目,我需要找到给定非线性微分方程的解,见下图:
现在,我尝试使用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,应该是这样。