Opened 11 years ago

Last modified 7 years ago

#2428 new defect

numerical instability — at Version 1

Reported by: wbraun Owned by: somebody
Priority: high Milestone: Future
Component: Run-time Version: trunk
Keywords: Cc:

Description (last modified by wbraun)

Following model behaves numerical instable:

loadString("
model testCFExpr1
  Real x;
initial equation
  der(x) = 3.14159/2;
equation
  sin(der(x)) = cos(x);
end testCFExpr1;
");

simulate(testCFExpr1, stopTime=10, tolerance=1e-4);
val(x,0);
val(x,10);

val(der(x),0);
val(der(x),10);

simulate(testCFExpr1, stopTime=10, tolerance=1e-5);
val(x,0);
val(x,10);

val(der(x),0);
val(der(x),10);

simulate(testCFExpr1, stopTime=10, tolerance=1e-6);
val(x,0);
val(x,10);

val(der(x),0);
val(der(x),10);

simulate(testCFExpr1, stopTime=10, tolerance=1e-7);
val(x,0);
val(x,10);

val(der(x),0);
val(der(x),10);

simulate(testCFExpr1, stopTime=10, tolerance=1e-8);
val(x,0);
val(x,10);

val(der(x),0);
val(der(x),10);

results with different tolerances:


tolerance = 0.0001:
-0.000001326803844565571
1.5707084777514067
1.570795
0.00008784904348996832

tolerance = 0.00001:
-0.000001326803844565571
1.5707236871192907
1.570795
0.00007263967560595125

tolerance = 0.000001:
-0.000001326803844565571
526.3524099363941
1.570795
18.985196381642503

tolerance = 0.0000001:
-0.000001326803844565571
1.570724934665874
1.570795
0.00007139212902257958

tolerance = 0.00000001:
-0.000001326803844565571
183.5349266542149
1.570795
0.24824358078800488

Change History (2)

Changed 11 years ago by wbraun

comment:1 Changed 11 years ago by wbraun

  • Description modified (diff)
Note: See TracTickets for help on using tickets.