Mathematica如何画微分方程的斜率场图,并且画上在指定点的解曲线.

问题描述:

Mathematica如何画微分方程的斜率场图,并且画上在指定点的解曲线.
1个回答 分类:数学 2014-10-26

问题解答:

我来补答
……你这问题也太过笼统了,能不能具体一些?
再问: 比如,我要画微分方程y'=(xy)/(x^2+4)的斜率场,并画上在过定点(0,-6)的解曲线。
再答: ……我本来是想和你确认下斜率场的概念的。刚查了下,嗯,和我猜的差不多。看了下帮助,mma其实有个画向量场的指令,VectorPlot,那么只要在这基础上变通下,就可以了: l=Sqrt[x^2+(x (x y)/(x^2 + 4))^2](*VectorPlot画出来的箭头有长度,所以这里用l把箭头弄成了一样长。此外注意,第二项的x是必须的。*) a = VectorPlot[{x/l, x (x y)/(x^2 + 4)/l}, {x, -2, 2}, {y, -8, -6}] 要画解曲线的话,那就得把原方程给解出来: b=DSolve[{y'[x] == (x y[x])/(x^2 + 4), y[0] == -6}, y[x], x] 再就是画图了,画到一起: c = Plot[y[x] /. b, {x, -2, 2}] Show[a, c]
再问: 不了解VectorPlot这个函数,请问l讲箭头变得一样长的原理是什么?谢谢!
再答: 强烈建议弄个中文版8.0.4,自带帮助文档超强悍。因为VectorPlot这个函数画出来的箭头,其长度等于该点的向量的模长。我这里绘图的原理其实是在每个点上画了这么一个向量:(x,xy'),很明显这个向量的方向就和斜率场里的短线方向一样,但是我看了一下,斜率场的短线都是一样长的,但是这个向量很明显不是,所以我就把它除了个向量本身的长度、单位化了。
 
 
展开全文阅读
剩余:2000
下一页:奇偶性的应用。
也许感兴趣的知识