Wolfram
Mathematica
8의 신기능: 다이나믹 라이브러리
◄
이전
|
다음
►
소프트웨어 개발
NDSolve와의 통합
Mathematica
함수는 C 언어 코드를 입력코드로 사용할 수 있습니다. 다음은
NDSolve
에서 Runge-Kutta 방법을 사용하여 Duffing의 방정식 계산을 보여 쥽니다.
In[1]:=
X
advancelf = LibraryFunctionLoad["demo_numerical", "duffing_crk4", {{Real, _}, Real, Real}, {Real, _}]; refinelf = LibraryFunctionLoad["demo_numerical", "refine", {Real, {Real, 2}}, {Real, 2}]; v = {{0., 0.01}, {0., 0.}}; dist = 0.025; \[CapitalDelta]t = 0.1; \[CapitalDelta]T = 1.0; Tend = 60; plots = Table[ Do[v = advancelf[refinelf[dist, v], t - \[CapitalDelta]t, t], {t, T - 1 + \[CapitalDelta]t, T, \[CapitalDelta]t}]; points = Transpose[v]; Graphics[ Line[points, VertexColors -> Map[Hue, N[Range[Length[points]]]/Length[points]]], Axes -> True, PlotRange -> {{-1.5, 1.5}, {-1, 1}}], {T, \[CapitalDelta]T, Tend, \[CapitalDelta]T }];
In[2]:=
X
Take[plots, {10, 60, 10}]
Out[2]=