Comments (4)
This should correct the bug: 044535f
I add @AugusteBourgois (main developer of the Lohner) to this conversation.
from codac.
OK for this correction;
I have now another problem where the solution of the BVP is lost when the Lohner Contractor is applied in a fixed-point loop.
the firrst tube becomes empty.
The code of the is the following :
int main(){
Interval domain(0.,1);
TubeVector x(domain,0.03125,2);
Function f("x1", "x2" ,"(x2;x1)");
IntervalVector v(2);
v[0]=Interval(1.,1.);
v[1]=Interval(-100,100);
x.set(v, 0.); // ini
v[0]=Interval(0.,0.);
v[1]=Interval(-100,100);
x.set(v, 1.); // ini
for (int i=0; i<10;i++){
cout << " x avant " << x << endl;
CtcLohner ctclohner(f);
cout << " x before Lohner " << x << endl;
for (int k=0; k< x.size(); k++){
const Slice *slice = x[k].first_slice();
while(slice != NULL){
cout << " slice " << k << *slice << endl;
slice = slice->next_slice();
}
}
ctclohner.contract(x);
cout <<" i " << i << " x after Lohner " << x << endl;
for (int k=0; k< x.size(); k++){
const Slice *slice = x[k].first_slice();
while(slice != NULL){
cout << " slice " << k << *slice << endl;
slice = slice->next_slice();
}
}
}
return 0;
}
results at the iteration 9
i 9 x after Lohner TubeVector (dim 2) [0, 1]↦([-3.60482, 0.0271986] ; [5.82926, 9.75906]), 32 slices
slice 0Slice [0, 0.03125]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.03125, 0.0625]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.0625, 0.09375]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.09375, 0.125]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.125, 0.15625]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.15625, 0.1875]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.1875, 0.21875]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.21875, 0.25]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.25, 0.28125]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.28125, 0.3125]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.3125, 0.34375]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.34375, 0.375]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.375, 0.40625]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.40625, 0.4375]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.4375, 0.46875]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.46875, 0.5]↦([ empty ])[ empty ]([ empty ])
slice 0Slice [0.5, 0.53125]↦([ empty ])[-0.302171, -0.199592]([ empty ])
slice 0Slice [0.53125, 0.5625]↦([ empty ])[-1.25698, -0.338892]([-1.25698, -0.863086])
slice 0Slice [0.5625, 0.59375]↦([-1.25698, -0.863086])[-2.25302, -0.863086]([-2.25302, -1.13284])
slice 0Slice [0.59375, 0.625]↦([-2.25302, -1.13284])[-2.93505, -1.13284]([-2.93505, -1.13284])
slice 0Slice [0.625, 0.65625]↦([-2.93505, -1.13284])[-3.3586, -1.13169]([-3.3586, -1.13169])
slice 0Slice [0.65625, 0.6875]↦([-3.3586, -1.13169])[-3.53808, -0.954964]([-3.53808, -0.954964])
slice 0Slice [0.6875, 0.71875]↦([-3.53808, -0.954964])[-3.60482, -0.82612]([-3.24533, -0.82612])
slice 0Slice [0.71875, 0.75]↦([-3.24533, -0.82612])[-3.24533, -0.705014]([-2.88235, -0.705014])
slice 0Slice [0.75, 0.78125]↦([-2.88235, -0.705014])[-2.88235, -0.591248]([-2.51596, -0.591248])
slice 0Slice [0.78125, 0.8125]↦([-2.51596, -0.591248])[-2.51596, -0.484293]([-2.14636, -0.484293])
slice 0Slice [0.8125, 0.84375]↦([-2.14636, -0.484293])[-2.14636, -0.383486]([-1.77387, -0.383486])
slice 0Slice [0.84375, 0.875]↦([-1.77387, -0.383486])[-1.77387, -0.288028]([-1.39898, -0.288028])
slice 0Slice [0.875, 0.90625]↦([-1.39898, -0.288028])[-1.39898, -0.196996]([-1.01103, -0.196996])
slice 0Slice [0.90625, 0.9375]↦([-1.01103, -0.196996])[-1.01103, -0.12059]([-0.625276, -0.12059])
slice 0Slice [0.9375, 0.96875]↦([-0.625276, -0.12059])[-0.625276, -0.0618176]([-0.299184, -0.0618176])
slice 0Slice [0.96875, 1]↦([-0.299184, -0.0618176])[-0.299184, 0.0271986]([0, 0])
the solution of this problem is found using capd in the solver
nb sol 1
TubeVector (dim 2) [0, 1]↦([-5.18293e-20, 1] ; [-1.31807, -0.850177]), 40000 slices ti-> ([1, 1] ; [-1.31807, -1.31189]) tf -> ([0, 0] ; [-0.858027, -0.850177]) max diam : 1, 0.467892 volume : 1.46789 ti (diam) -> (0 ; 0.00617769) tf (diam) -> (0 ; 0.00784996)
from codac.
Does this problem appears before 044535f?
Or this commit was already necessary for allowing propagations in your solver?
from codac.
Without this commit, the problem does not appear, but the propagation stops after a few steps and does not reach the solution,
the initial and final gates have been enlarged.
from codac.
Related Issues (19)
- Check OpenMP results HOT 1
- compilation error in tubex_ColorMap.cpp HOT 1
- CMake HOT 2
- Windows compatibility HOT 2
- ImportError: generic_type: type "CtcDist" referenced unknown base type "ibex::Ctc"
- True range only localisation HOT 1
- Release package 3.0.12 cannot be compiled with `-DWITH_PYTHON=1` HOT 2
- CN issue in v0.1.5? HOT 1
- sudo make install HOT 1
- Dynamic tdomain for Tube and TubeVector HOT 4
- Bug in TFunction
- Assertion `Tube::same_slicing(x, v)' failed HOT 3
- Create an IntervalMatrix from a numpy Matrix
- Tubex install with filib HOT 2
- Useless and costly code in ConvexPolygon ? HOT 5
- Bug with infinite Vectors
- Problems running codac on Mac m2 chip HOT 5
- bug in eval_vector in tubex_Fnc HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codac.