2017-11-27 12 views
1

Der Versuch, diese Frage hier, um herauszufinden: Plot Richtungsfeld für die DifferentialgleichungWolfram Mathematica: Felder Richtung der grafischen Darstellung

dy/dx=sin(x^2+y^2)log(|x+y|) when -1<x,y<1. 

Sie vollen Grad haben, wenn Sie Intervalle der Handlung alle die gleiche machen Länge. Machen Sie das Gitter 20 X 20

Hier ist mein nicht funktionierenden Code:

StreamPlot[{1, (Sin[y^2+x^2]*Log[Abs[x+y]])}, {x, -10, 10}, {y, -10, 10}, RegionFunction->Function[{x,y}, {{-1<x<1}&&{-1<y<1}}]] 

kann nicht verstehen, Wolfram-Syntax. Irgendwelche Tipps sehr geschätzt!

Antwort

1

Nicht sicher alles zu verstehen, was Sie gefragt haben. Wenn Ihr Ziel ist das Richtungsfeld mit einem Raster zu zeichnen ist beteiligt 20x20 = 400 Punkte, eine Art und Weise, dies zu tun ist:

grid = Range[-1, 1, 2/19] 
points = Apply[Join, Outer[{#1, #2} &, grid, grid]]; 
VectorPlot[{1, (Sin[y^2 + x^2]*Log[Abs[x + y]])}, 
    {x, -1, 1}, {y, -1, 1}, 
    VectorPoints -> points, 
    GridLines -> {grid, grid}] 

grid, mit einer Länge = 20 ist:

{-1, -(17/19), -(15/19), -(13/19), -(11/19), -(9/19), -(7/19), -(5/19), 
-(3/19), -(1/19), 1/19, 3/19, 5/19, 7/19, 9/19, 11/19, 13/19, 15/19, 
17/19, 1} 

points ist das Gitter kartesische Produkt:

{{-1, -1}, {-1, -(17/19)}, {-1, -(15/19)}, {-1, -(13/19)}, ...} 

die Vektoren (1, f (x, y)) des ODE y '= f (x, y) für jeden Punkt der points evaluted. Die sich ergebende Handlung ist:

enter image description here


Unten einige Erläuterungen über die Mathematica Syntax & Ihre Frage:

Die RegionFunction Option ermöglicht es Ihnen, in einigen bestimmten Region zu zeichnen. Zum Beispiel können Sie das Vektorfeld beschränken in der Einheitsscheibe werden aufgetragen:

VectorPlot[{1, (Sin[y^2 + x^2]*Log[Abs[x + y]])}, 
    {x, -1, 1}, {y, -1, 1}, 
    VectorPoints -> points, GridLines -> {grid, grid}, 
    RegionFunction -> Function[{x, y}, x^2 + y^2 < 1]] 

enter image description here

Ihr Code nicht, weil Ihr boolean Ausdruck funktioniert (der Körperteil der reinen Funktion):

Function[{x, y}, {{-1<x<1}&&{-1<y<1}}] 

respektiert nicht die Mathematica-Syntax.

Der Mathematica Weg, es zu schreiben ist:

Function[{x, y}, (-1<x<1)&&(-1<y<1)] 
+0

Danke so sehr, es funktioniert. Kann ich die Pfeile irgendwie gleich groß machen? –

Verwandte Themen