2012-01-18 27 views
9

Tôi đang cố gắng vẽ các trường độ dốc của một số phương trình vi phân bằng cách sử dụng toán học nhưng không thể tìm ra. Giả sử tôi có phương trìnhLàm cách nào để vẽ một trường độ dốc bằng toán học?

y' = y(t) 
    y(t) = C * E^t 

Làm cách nào để vẽ trường độ dốc?

Tôi tìm thấy một ví dụ nhưng cách đến phức tạp cho tôi để hiểu http://demonstrations.wolfram.com/SlopeFields/

Trả lời

17

Lệnh bạn cần (kể từ phiên bản 7) là VectorPlot. Có những ví dụ hay trong tài liệu.

Tôi nghĩ rằng trường hợp đó bạn quan tâm là một phương trình vi phân

y'[x] == f[x, y[x]] 

Trong trường hợp bạn đã cho trong câu hỏi của bạn,

f[x_, y_] := y 

nào tích hợp với mũ

In[]:= sol = DSolve[y'[x] == f[x, y[x]], y, x] 
Out[]= {{y -> Function[{x}, E^x c]}} 

Chúng tôi có thể vẽ trường độ dốc (xem.210) sử dụng

VectorPlot[{1, f[x, y]}, {x, -2, 2}, {y, -2, 2}] 

y

Điều này có thể được vẽ với các giải pháp cho DE sử dụng một cái gì đó giống như

Show[VectorPlot[{1, f[x, y]}, {x, -2, 2}, {y, -2, 8}, 
    VectorStyle -> Arrowheads[0.03]], 
Plot[Evaluate[Table[y[x] /. sol, {c, -10, 10, 1}]], {x, -2, 2}, 
    PlotRange -> All]] 

y again

Có lẽ một ví dụ thú vị hơn là Gaussian

In[]:= f[x_, y_] := -x y 

In[]:= sol = DSolve[y'[x] == f[x, y[x]], y, x] /. C[1] -> c 
Out[]= {{y -> Function[{x}, E^(-(x^2/2)) c]}} 

Show[VectorPlot[{1, f[x, y]}, {x, -2, 2}, {y, -2, 8}, 
    VectorStyle -> Arrowheads[0.026]], 
Plot[Evaluate[Table[y[x] /. sol, {c, -10, 10, 1}]], {x, -2, 2}, 
    PlotRange -> All]] 

-xy


Cuối cùng, có một khái niệm có liên quan thuộc lĩnh vực gradient, nơi bạn nhìn vào gradient (phái sinh vector) của một hàm:

In[]:= f[x_, y_] := Sin[x y] 
     D[f[x, y], {{x, y}}] 
     VectorPlot[%, {x, -2, 2}, {y, -2, 2}] 

Out[]= {y Cos[x y], x Cos[x y]} 

Sin[x y]

0

Nó sẽ xuất hiện từ các cuộc biểu tình bạn liên kết mà phải mất một hàm f (x, y) nhưng bạn có một bộ chênh lệch. Tuy nhiên, khi biết rằng f(x,y)=y(x)', bạn chỉ có thể sử dụng f(x,y)=C*E^x trong đó x=t. Sự khác biệt của tôi có thể hơi yếu, nhưng tôi khá chắc chắn điều đó đúng.

+0

ai có một lớp lót 1 cho các cánh đồng dốc? – user968102

+0

1 lót? Nếu bạn cần biết cách đặt nó vào trong bạn có thể kiểm tra http://www.physicsforums.com/showthread.php?t=152157 Nó có nhiều hơn một dòng vì Mathematica dường như cần một thư viện được nhập khẩu, sau đó gọi hàm vẽ chức năng chính nó là một chút nữa. –

Các vấn đề liên quan