Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Differential Equations in Mathematica

  1. Sep 24, 2005 #1
    I know how to solve them in Mathematica, but is there a way I can plot slope fields / integral curves?
     
  2. jcsd
  3. Sep 24, 2005 #2

    lurflurf

    User Avatar
    Homework Helper

    yes there is
     
  4. Sep 24, 2005 #3
    Well, how would I do it?
     
  5. Sep 25, 2005 #4

    lurflurf

    User Avatar
    Homework Helper

    There is a standard package
    Graphics`PlotField`
    that may be helpfull
    all you need for particular curves is to define a function using DSolve or NDSolve
    f[x_,x0_,y0_]:=NDSolve[{y'[x]+y[x]==0,y[x0]==y0},y[x],{x,y0,10}][1,1,2]
    for the slope field use the DE to get the slope
     
  6. Sep 25, 2005 #5

    saltydog

    User Avatar
    Science Advisor
    Homework Helper

    Hey Apmcavoy, can you follow this (note the double equal signs):

    Code (Text):
    <<Graphics`PlotField`
    <<Graphics`Arrow`


    sol1=NDSolve[{y'[x]==y[x]-x,y[0]==0.5},y,{x,0,3}];
    fsol[x_]:=Evaluate[y[x]/.Flatten[sol1]];
    xpt=2.6
    xed=2.7
    ypt=fsol[2.6]
    yed=fsol[2.7]
    a1=Graphics[Arrow[{xpt,ypt},{xed,yed}]];

    pv=PlotVectorField[{1,y-x},{x,-3,3},{y,-3,3},PlotRange->{{-4,4},{-4,4}},
        PlotPoints->25,Axes->True]
    pt1=Plot[fsol[x],{x,0,2.7},PlotStyle->{{Thickness[0.01]}}]
    Show[{pv,pt1,a1}]
    A plot of the results is attached. If so, can you post the same for your differential equation?

    Edit: Alright, you don't need some of that stuf: arrow tip at the end of the curve, the axes->True, thickness, plotstyle, plotpoints. Just take them out to cut it down.
     

    Attached Files:

    Last edited: Sep 25, 2005
  7. Sep 25, 2005 #6
    I'm not on my home computer now, but I will post it tomorrow most likely. I would have thought Wolfram would have a quicker way to do this, but I guess this is it. Thanks a lot saltydog for the information! I will try that out as soon as possible.
     
  8. Sep 26, 2005 #7

    saltydog

    User Avatar
    Science Advisor
    Homework Helper

    Quicker? How about this stripped-down version:

    Code (Text):
    <<Graphics`PlotField`

    sol1=NDSolve[{y'[x]==y[x]-x,y[0]==0.5},y,{x,0,3}];
    pt1=Plot[Evaluate[y[x]/.sol1]

    pv=PlotVectorField[{1,y-x},{x,-3,3},{y,-3,3}]

    Show[{pt1,pv}]
     
  9. Sep 27, 2005 #8
    The longer way worked great. However, I couldn't get the cut-down version to work properly. Any ideas why? Thanks saltydog.
     
  10. Sep 27, 2005 #9

    saltydog

    User Avatar
    Science Advisor
    Homework Helper

    Alright I'm sorry. That's what I get for posting it without trying it first. Some typos: (no x range in Plot). Also the <<Graphics line should be in it's own cell as it needs to be executed only once to load the package (PlotField is a library of functions).

    Code (Text):
    <<Graphics`PlotField`

    sol1=NDSolve[{y'[x]==y[x]-x,y[0]==0.5},y,{x,0,3}];
    pt1=Plot[Evaluate[y[x]/.sol1,{x,0,3}]

    pv=PlotVectorField[{1,y-x},{x,-3,3},{y,-3,3}]

    Show[{pt1,pv}]
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Differential Equations in Mathematica
Loading...