龙之影仙童四少年群侠传6阶进阶丹五阶用多少进阶丹

查看: 8136|回复: 7|关注: 0
Matlab的四阶/五阶龙格-库塔
<h1 style="color:# 麦片财富积分
新手, 积分 24, 距离下一级还需 26 积分
y''-(1-y^2)y'+y=0, 运用四阶/五阶龙格-库塔算法,ode45()
M文件输入:
function dydt=ivpodefun(t,y)
dydt=zeros(2,1);
dydt(1)=y(2);
dydt(2)=(1-y(1)^2)*y(2)-y(1);
命令窗口输入:
[t,y]=ode45(@ivpodefun,[0 20],[2;0]);
plot(t,y(:,1),'-',t,y(:,2),'--')
1. 赋值一个2*1维的零向量有什么作用?
2. 带有括号(1)、(2)的dydt变量为什么能表示一阶导数和二阶导数?去掉括号为何不行?
3. 去掉@为什么程序运行不了?
4. plot里面的(:,1)和(:,2)为什么能区别y和y',从而分别画图?
众高手,谢谢啦!!!
[ 本帖最后由 mooni 于
10:25 编辑 ]
<h1 style="color:# 麦片财富积分
关注者: 2
问题1,是为了初始化dydt,也就是为它们分配内存
问题2,你令y(1)=y,dydt(1)=y'=y(2),dydt(2)=y'',再用原表达式算出y''就是)dydt(2)=y''=(1-y(1)^2)*y(2)-y(1)
问题3,去掉@是不行的这里本质是要用函数句柄,用@就是取这个函数的句柄了!
问题4,是用plot分别画图,你看了前3问肯定已经明白了!
[ 本帖最后由 chensheng 于
00:31 编辑 ]
<h1 style="color:# 麦片财富积分
关注者: 4
ls 回答很对也很全面。
现在回答问题需要抢了。。。。
呵呵,论坛很强大。
<h1 style="color:# 麦片财富积分
个人感觉2楼的没有说的很清楚,我就我认识的作些解答。&br /&
先从matlab方面说,y(i)就是y(i,1)的省略,如y(1)就是y(1,1)的省略,这样就好看懂程序了。&br /&
函数ivpodefun里先定义了一个2*1维的矩阵dydt,输入的参数是矩阵y,也是2*1维的,函数等价与&br /&
function dydt=ivpodefun(t,y) &br /&
dydt=zeros(2,1); &br /&
dydt(1,1)=y(2,1); &br /&
dydt(2,1)=(1-y(1,1)^2)*y(2,1)-y(1,1);&br /&
则函数的输入为矩阵y,输出为dydt,都是2*1维的。&br /&
而函数ode45调用函数ivpodefun是循环调用,即t每增加一个小量h,都调用一次函数ivpodefun,&br /&
每次调用时,ode45先生成一个矩阵y,第一行是在t时的y值,第二行是t时的y'的值,再将y矩阵给&br /&
函数ivpodefun,函数返回dydt,dydt的第一行是在t时的y'值,第二行是t时的y''的值。ode45得&br /&
到dydt后又计算t+h的y值,如此循环,直到终止条件。&br /&
再回答楼主的问题。&br /&
1.零向量的作用是初始化,因为要循环调用该函数,所以最好在每次调用都初始化,以免出错&br /&
2.由上面的分析可以知道,括号的作用是引用矩阵的某个数,所以肯定不能省略,并不是加括号就是&br /&
相当于求一阶和二阶导数,只是在程序中把程序计算出来的一阶和二阶导数储存在矩阵的第一行和&br /&
第二行;&br /&
3.在这里ode45需要的是一个函数,而@是一个函数句柄,是调用函数的一种方法,&br /&
调用函数ivpodefun还有另一种方法,就是函数加单引号,即@ivpodefun和'ivpodefun'都行;&br /&
4.这里跟第二问一样,经过ode45计算的y和y'分别储存在y的第一列和第二列,这里的输出的y是跟&br /&
输入函数ivpodefun的y不同的,这里的y为2*237维,储存的t从初始值到终值的共237个t对应的y&br /&
和y'值,而调用函数ivpodefun输入的是2*1维的。
<h1 style="color:# 麦片财富积分
[t,y]=ode45(@ivpodefun,[0 20],[2;0]);
有谁能解释下初始值[2;0]是什么意思吗,谢谢
<h1 style="color:# 麦片财富积分
zcbeita 发表于
个人感觉2楼的没有说的很清楚,我就我认识的作些解答。
先从matlab方面说,y(i)就是y(i,1)的省略 ...
麻烦一下,我急需一个duffing的时域图,可是耗尽了几天也没有弄出来,您可以帮帮我吗?十分感谢
<h1 style="color:# 麦片财富积分
zcbeita 发表于
个人感觉2楼的没有说的很清楚,我就我认识的作些解答。
先从matlab方面说,y(i)就是y(i,1)的省略 ...
麻烦一下,我急需一个duffing的时域图,可是耗尽了几天也没有弄出来,您可以帮帮我吗?十分感谢
<h1 style="color:# 麦片财富积分
好牛啊慢着些许巍山炮哥不给力了
站长推荐 /3
Powered by

我要回帖

更多关于 少年群侠传6阶进阶丹 的文章

 

随机推荐