参考代码:
% 解的初始估计solinit = bvpinit(linspace(0,1,100),[1 -50])
% BVP问题求解
ode = @(t,x) [x(2) -pi^2/4*(1-x(1))]
bc = @(ya,yb)[ya(2)-pi yb(2)+pi/2]
sol = bvp4c(ode,bc,solinit)
% 结果绘图
t=sol.x
vars={'x', 'x'''}
for i=1:length(vars)
subplot(2,1,i)
plot(t,sol.y(i,:))
xlabel('t')
ylabel(vars{i})
end
4个微分方程应该只有4个约束(包括初值或终值)吧?但按照你给的初值和终值,一共有6个约束。
可以这样理解:如果4个初值都给定了,那么微分方程就有充足的条件可以直接求解了,不一定保证终值符合你的要求。
以你的描述来看,t的范围就是2.40425到2.61915。
ode只能求解微分方程的初值问题
若要同时考虑初值、终值,那这样的问题叫微分方程的边值问题。
边值问题的求解有多种方法,打靶法比较常见,还有就是直接调用Matlab的求解器,详情请百度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)