View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002741 | OpenFOAM | Feature | public | 2017-10-31 15:30 | 2017-10-31 16:05 |
Reporter | chaohsiung | Assigned To | will | ||
Priority | normal | Severity | major | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Summary | 0002741: Error estimation in linearEqn, cubicEqn etc. | ||||
Description | For a linear equation, f(x)=a*x+b, the error caused by limit float precision should be error = f(x+SMALL) - f(x) = ( a*(x+SMALL)+b - (a*x+b) ) = a*SMALL rather than inline Foam::scalar Foam::linearEqn::error(const scalar x) const { return mag(SMALL*x*a()); } //--------------------- For a n-th order function, using Taylor series f(x±SMALL) = f(x) ± (f1(x)*SMALL) + (f2(x)*SMALL^2)/2! + ... + (fn(x)*SMALL^n)/n! where fn(x) represents the n-th order derivative. re-arrange and ignore the high order small value error = f(x±SMALL) - f(x) = f1(x)*SMALL rather than error = f1(x) * SMALL * x //--------------------- This also exists in other equation-like classes. Or If I misunderstand the use of these functions? Best regards Chaohsiung MIAO | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2017-10-31 15:30 | chaohsiung | New Issue | |
2017-10-31 16:05 | will | Assigned To | => will |
2017-10-31 16:05 | will | Status | new => closed |
2017-10-31 16:05 | will | Resolution | open => fixed |
2017-10-31 16:05 | will | Note Added: 0008966 |