Qurak

Sampling events

ఉదాహరణ 3 దశలు, ఒకే సెషన్‌లో క్రమంగా నడుస్తాయి. ప్రతి దశా ఇంజిన్‌పై అమలు చేయబడింది, కింది అవుట్‌పుట్ అది ఇచ్చినదే.

దశ 1
eqns = {x'[t] == -y[t] - x[t] ^ 2, y'[t] == 2x[t] - y[t] ^ 3, x[0] == y[0] == 1};
event = WhenEvent[y[t] == 0, Sow[t]];
{sol1, points} = Reap@NDSolve[{eqns, event}, {x, y}, {t, 100}];
ParametricPlot[{x[t], y[t]} /. sol1, {t, 0, 100}, Mesh -> points, MeshShading -> {Green, Orange}, PlotRange -> All, AxesLabel -> {x, y}]
అవుట్‌పుట్
-Graphics-
దశ 2
event = WhenEvent[y[t] == 1.1Sin[5x[t]], Sow[t]];
{sol2, points} = Reap@NDSolve[{eqns, event}, {x, y}, {t, 100}];
Show[ParametricPlot[{x[t], y[t]} /. sol2, {t, 0, 100}, Mesh -> points, MeshShading -> {Green, Orange}, PlotRange -> All, AxesLabel -> {x, y}], ParametricPlot[{t, 1.1Sin[5t]}, {t, -1, 1}, PlotStyle -> Dashed]]
అవుట్‌పుట్
-Graphics-
దశ 3
Clear[p];
aleqns = {p'[t] == Sqrt[Derivative[1][x][t]^2 + Derivative[1][y][t]^2], p[0] == 0};
event = WhenEvent[Mod[p[t], 1] == 0, Sow[t]];
{sol3, points} = Reap@NDSolve[{eqns, aleqns, event}, {x, y, p}, {t, 100}];
ParametricPlot[{x[t], y[t]} /. sol3, {t, 0, 100}, Mesh -> points, MeshShading -> {Green, Orange}, PlotRange -> All, AxesLabel -> {x, y}]
అవుట్‌పుట్
-Graphics-

వాడిన ఫంక్షన్లు

సంబంధిత రెసిపీలు

అన్ని రెసిపీలు · ఫంక్షన్ రిఫరెన్స్ · దీన్ని MCP క్లయింట్ నుండి వాడండి