24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 2543  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

li52

金虫 (小有名气)

[求助] Matlab求解二阶常微分方程边值问题 已有2人参与

我用bvp4c求解了一个简单的二阶常微分方程边值问题
原方程,其中k是一个常数
边界条件
我想得到不同的k时的结果。需要从别的结果中提取k的值,数量较大,一个一个修改不太现实。
据我尝试,描述微分方程的function的参数只能是(x,y),不能再添加一个k。
怎样能整理成一个function,把k也当作参数呢?

附:k=1的时候,MATLAB计算过程

先转换成一阶微分方程组




求解过程:
1.magFun.m  描述微分方程
  function dy = magFun(x,y)
  k = 1;
  dy = zeros(2,1);
  dy(1) = y(2);
  dy(2) = -k*cos(y(1));
  end
2.magBC.m  描述边界条件
  function res = magBC( ya,yb )
  res = [ ya(1); yb(2) ];
  end
3.magSol.m  求解
  function magSol
  solinit = bvpinit(linspace(0,1,5),[1 0]);
  sol = bvp4c(@magFun,@magBC,solinit);
  x = linspace(0,1);
  y = deval(sol,x);
  plot(x,y(1,: ))

[ Last edited by li52 on 2016-10-8 at 17:10 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

li52

金虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2016-10-08 19:50:27
可以试试用1stOpt计算。假如k范围=【1,4】,变幅0.1

LoopConstant k=;
Variable x=,y=0,y'=;
Plot x,y,y';
ODEFunction y''=-k*cos(y);


c261.jpg

c262.jpg
...

谢谢!
Google了下,1stOpt应该也是一种数学软件吧。但是之前的计算都是在MATLAB上进行的,再重新学习新软件,然后在软件间转换数据确实比较头疼。
3楼2016-10-08 21:21:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
li52: 金币+10 2016-10-09 09:37:29
可以试试用1stOpt计算。假如k范围=【1,4】,变幅0.1
CODE:
LoopConstant k=[1:0.1:4];
Variable x=[0,1],y=0,y'=[,0];
Plot x[x],y,y';
ODEFunction y''=-k*cos(y);

Matlab求解二阶常微分方程边值问题
c261.jpg


Matlab求解二阶常微分方程边值问题-1
c262.jpg

2楼2016-10-08 19:50:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yz457694

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
li52: 金币+40, ★★★★★最佳答案 2016-10-09 09:37:09
function dy = magFun(x,y)
  global k;
  dy = zeros(2,1);
  dy(1) = y(2);
  dy(2) = -k*cos(y(1));
end
  

function res = magBC( ya,yb )
  res = [ ya(1); yb(2) ];
end
  
  function magSol
  clear,clc
  global k; %全局变量k
  yt=[];    %存储要绘图的y数据
  x = linspace(0,1,10);
  for k=1:5
  solinit = bvpinit(x,[1 0]);
  sol = bvp4c(@magFun,@magBC,solinit);
  
  y = deval(sol,x);
  yt=[yt;y(1,];
  end
  plot(x,yt)
  legend('1','2','3','4','5')
Matlab求解二阶常微分方程边值问题-2
figure.jpg

4楼2016-10-09 07:16:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yz457694

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★
dbb627: 金币+2, 谢谢指导 2016-10-09 08:59:54
表情干扰了。。。大致上就是把k设为了全局变量,然后加个循环,就可以自己设置k的范围来得到不同结果了
CODE:
function dy = magFun(x,y)
  global k;
  dy = zeros(2,1);
  dy(1) = y(2);
  dy(2) = -k*cos(y(1));
end
  

function res = magBC( ya,yb )
  res = [ ya(1); yb(2) ];
end
  
  function magSol
  clear,clc
  global k; %全局变量k
  yt=[];    %存储要绘图的y数据
  x = linspace(0,1,10);
  for k=1:5
  solinit = bvpinit(x,[1 0]);
  sol = bvp4c(@magFun,@magBC,solinit);
  
  y = deval(sol,x);
  yt=[yt;y(1,:)];
  end
  plot(x,yt)
  legend('1','2','3','4','5')

» 本帖已获得的红花(最新10朵)

5楼2016-10-09 07:19:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿华中农业071010,320求调剂 +5 困困困困坤坤 2026-04-14 6/300 2026-04-14 23:54 by Xurambo2014
[考研] 材料工程281还有调剂机会吗 +41 xaw. 2026-04-11 42/2100 2026-04-14 20:05 by honglizhao
[考研] 求调剂 +9 小聂爱学习 2026-04-11 13/650 2026-04-14 19:18 by Art1977
[考研] 272分材料子求调剂 +41 Loy0361 2026-04-10 54/2700 2026-04-14 18:00 by lhj2009
[考研] 化工学硕294分,求导师收留 +32 yzyzx 2026-04-12 36/1800 2026-04-14 17:45 by lhj2009
[考研] 26药学专硕105500求调剂 +6 喽哈加油 2026-04-13 6/300 2026-04-14 16:40 by zhouxiaoyu
[考研] 284求调剂 +17 让我上岸吧阿西 2026-04-09 17/850 2026-04-14 14:44 by 不我拉绿卡
[考研] 085600材料与化工349分求调剂 +16 李木子啊哈哈 2026-04-12 17/850 2026-04-14 09:11 by fenglj492
[考研] 材料复试求调剂 +24 xhhdjdjsjks 2026-04-09 24/1200 2026-04-13 15:49 by 幸免 ..
[考研] 297工科,求调剂? +13 河南农业大学-能 2026-04-12 13/650 2026-04-13 14:12 by dingyanbo1
[考研] 314求调剂 +24 wakeluofu 2026-04-09 25/1250 2026-04-13 08:58 by lhj2009
[考研] 291求调剂 +8 关忆北. 2026-04-11 8/400 2026-04-12 09:32 by 逆水乘风
[考研] 求调剂,262机械专硕 +8 嗯yyl 2026-04-08 8/400 2026-04-12 02:31 by 秋豆菜芽
[考研] 广东省 085601 329分求调剂 +14 Eddieddd 2026-04-10 14/700 2026-04-11 09:58 by bljnqdcc
[考研] 346,工科0854求调剂,专硕 +7 moser233 2026-04-10 8/400 2026-04-11 08:52 by 猪会飞
[考研] 289 分105500药学专硕求调剂(找B区学校) +6 白云123456789 2026-04-09 8/400 2026-04-10 21:13 by zhouxiaoyu
[考研] 吉大计算机技术331分,英语六级,求调剂 +3 峰峰021116 2026-04-09 3/150 2026-04-10 20:01 by chemisry
[考研] 0858求调剂 5+5 Gky09300550, 2026-04-10 8/400 2026-04-10 19:13 by chemisry
[考研] 求调剂 +5 不会飞的鱼@ 2026-04-10 5/250 2026-04-10 19:07 by chemisry
[考研] 生物学328分求调剂 +9 闪电kkl 2026-04-08 10/500 2026-04-08 21:42 by liuhuiying09
信息提示
请填处理意见