[已解决] 求问求解微分方程时,这样的边界条件怎么设置呀

[复制链接]
云落风清 发表于 2021-1-6 12:12:21
问题中含有公式,我写在图片里,跪谢各位大佬

待求方程可表示如下:
function dy =Schrodingerp(x,y)
L_a =0.1;
Ep =1.5;
dy=zeros(2,1);
dy(1) =y(2);
dy(2) =(0.5*sin(L_a*pi*x)-Ep)*y(1);
利用ode45求解
[xp,yp] = ode45('Schrodingerp',[0 10],[0 1]);
1.png

最佳答案


EngineerLeon 发表于 2021-1-6 13:59:24
印象中ode系列求解器好像没有直接设置这种边界条件的选项

常规解法是使用打靶法(Shooting Method),即需要自己设置不同的初值也就是[ 0 1 ]后面那个数值,然后根据ode数值解返回的边界值来评判初值是否设定得符合需求,比如一个初值-2得到边界值小于需求,另一个初值2得到边界值大于需求,一般而言在[ -2, 2 ]这个区间内用二分法总是可以逼近得到一个合适的符合边界条件的初值的


[attach]318439[/attach]

回复此楼

3 条回复


EngineerLeon 发表于 2021-1-6 13:59:24
印象中ode系列求解器好像没有直接设置这种边界条件的选项

常规解法是使用打靶法(Shooting Method),即需要自己设置不同的初值也就是[ 0 1 ]后面那个数值,然后根据ode数值解返回的边界值来评判初值是否设定得符合需求,比如一个初值-2得到边界值小于需求,另一个初值2得到边界值大于需求,一般而言在[ -2, 2 ]这个区间内用二分法总是可以逼近得到一个合适的符合边界条件的初值的


ShootingMethod00.png

回复此楼

shihe 发表于 2021-1-6 15:50:50
典型的边值微分方程(BVP)问题吧,Matlab的话用BVP4C命令试试。1stOpt的话就更简单了:
  1. Constant L_a =0.1, Ep =1.5;
  2. Variable x=[0,10],y=[0,1];
  3. Plot x[x],y,y'[y2];
  4. ODEFunction y'' =(0.5*sin(L_a*pi*x)-Ep)*y';
复制代码



t1.jpg

云落风清 发表于 2021-1-7 16:42:36
谢两位大佬!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表