第三次作业

2017-09-27  本文已影响0人  陇溪首逸

       由于安装Python的Numpy和Matplotlib包实在水深搞不清楚,和以前安装VS,matlab区别太大了,一时理不清楚,于是这次作业我就暂时用Mathematica写了,特此说明。

课后第一题

很明显,自由落体中,速度v与时间t是线性关系,所以此处应用欧拉方法并不会产生与理论结果的数值差。

思路为,时间t由0s增长至10s换用多个步长(dt0=0.1的整数倍的几个步长)依次计算时间为10s时由欧拉方法得到的速度v的值,并把每个v值加入空列表result中,最后显示各个步长计算下得到的每一个v值。

显然理论解在t=10s时,v=g*t=9.8*10=98m/s;

源代码及运行结果:

运行结果,各步长皆为98,与理论值无差

结果表明欧拉方法应用于线性关系的数值求解(好像没什么意义)是与理论值没有误差的。

故尝试其它题目:课后第六题

人口增长问题:dN/dt=aN-bN*N;

选取dt0=0.01为基准步长,按书上提示,使初始人口为1000人,a=10,b=0.01;

a=10,b=0.01,N0=1000时人口增长数

发现所取步长下各步长对应结果相同,修改代码中建议值a与b,a=100,b=0.013,发现其还是趋向了一个稳定的最终结果。

a=100,b=0.013

查询相关资料知:它表明当人口数量超过最大人口容纳量时,人口数量将减少,当人口数量小于最大人口容纳量时,人口数量将增加。百度文库链接


步长不一样时趋近最终值的速度也不一样

总结

由以上易知线性关系下采用欧拉方法意义不大,对于非线性关系,在步长取的足够精细的情况下,欧拉方法的误差也很小。从其他的取值尝试后,最终结果趋向无穷,可知当取值极端时,此模型函数不再试用,其计算结果也不再有参考和指导意义。

蔡佳伟 2015301890053

2017/9/27

上一篇下一篇

猜你喜欢

热点阅读