0

私のプログラムが解く微分方程式があります。

p := dsolve({ic, sys}, numeric, method = rosenbrock);

解決後、次のようになります。

print(p(10));
      [t = 10., alpha(t) = HFloat(0.031724302221312055), beta(t) = HFloat(0.00223975915581258)]

この alpha(t) と beta(t) を次のように使用する必要があります。

a := t->exp( int(alpha(t)),x=0..t) );
b := t->exp( int(beta(t)),x=0..t) )

そして、プロットを描きます:

odeplot(p, [[t, a(t)], [t, b(t)]], 0 .. 20, thickness = 2, numpoints = 500, color = [red, blue])

そうするために最初に起こったこと:

p := dsolve({sys, ic},  numeric, method=rosenbrock); 
alpha := t->rhs(p(t)[2] );
beta := t->rhs(p(t)[3;
a := t->exp( int(alphat)),x=0..t) );
b := t->exp( int(betat)),x=0..t) );
odeplot(p, [[t, a(t)], [t, b(t)]], 0 .. 20, thickness = 2, numpoints = 500, color = [red, blue])

しかし、コードは機能しません。はい、明らかに、異なる動作をする必要があります。

4

1 に答える 1