Marko Petek's Thesis application 1.0
The Marko Petek's code for numerical analysis of nonlinear damped and driven oscillation.
|
Šablona specifičnega solverja. Specifični solver je nadgradnja (specializacija) splošnega solverja. Splošni solver vsebuje samo metodo reševanja DE brez vezave na specifično DE,medtem ko specifični solver vsebuje tudi DE samo. More...
Public Member Functions | |||
abstract double | DE (double[] arg) | ||
DE, ki jo definira vsak specifični solver zase. | |||
void | SolveNumerically () | ||
Reši DE tako, da kliče metodo Solve() na splošnem solverju. | |||
void | CalculateErrors () | ||
Izračuna napake tako, da primerja rešitev pri trenutni dolžini koraka z rešitvijo pri pol manjši dolžini koraka. | |||
void | PostProcessErrors (int forceTakeValue) | ||
Najprej izračuna absolutne vrednosti napak. Potem poskuša zgladiti krivuljo (uporabno če ta oscilira).
| |||
void | VerifyErrorsValidity (int nPoints) | ||
Vezava z isto metodo na solverju. Imena spremenljvik zdaj niso več vezana na solver. | |||
Protected Attributes | |||
string | _name | ||
Ime specifičnega solverja, na primer "Vsiljeno nihanje". | |||
List< string > | _defaultVariableNames | ||
Sem se po kostrukciji dediča vpišejo default vrednosti spremenljivk. | |||
List< string > | _variableNames | ||
Seznam imen spremenljivk za risanje grafa. | |||
DEInitialProblemSolver | _solver | ||
Splošni solver - ta vsebuje samo metodo reševanja. | |||
double[] | _initialConditions | ||
Začetni pogoji. Podati moramo ustrezno število. Npr. DE II. reda: {x, f(x), f'(x), f''(x)}. Za najvišji odvod podamo karkoli, saj se tako ali tako avtomatsko izračuna iz DE. | |||
List< double[]> | _solutionMain | ||
Tabela iz katere se vzamejo vrednosti za risanje grafa. Tabela mora biti dostopna na specifičnem solverju zaradi zahteve na vmesniku. Na vmesniku pa morabiti prisotna zato, ker se bo na vmesnik skliceval razred GeneralPlotter, ki riše grafe. | |||
Properties | |||
string | Name [get, set] | ||
Ime specifičnega solverja, na primer "Vsiljeno nihanje". | |||
List< string > | DefaultVariableNames [get, set] | ||
Sem se po kostrukciji dediča vpišejo default vrednosti spremenljivk. | |||
List< string > | VariableNames [get, set] | ||
Imena spremenljivk DE. | |||
DEInitialProblemSolver | Solver [get, set] | ||
Splošni solver - ta vsebuje samo metodo reševanja. | |||
double[] | InitialConditions [get, set] | ||
Začetni pogoji. Podati moramo ustrezno število. Npr. DE II. reda: {x, f(x), f'(x), f''(x)}. Za najvišji odvod podamo karkoli, saj se tako ali tako avtomatsko izračuna iz DE. | |||
List< double[]> | Solution [get] | ||
Tabela iz katere se vzamejo vrednosti za risanje grafa. Tabela mora biti dostopna na specifičnem solverju zaradi zahteve na vmesniku. Na vmesniku pa morabiti prisotna zato, ker se bo na vmesnik skliceval razred GeneralPlotter, ki riše grafe. |
Šablona specifičnega solverja. Specifični solver je nadgradnja (specializacija) splošnega solverja.
Splošni solver vsebuje samo metodo reševanja DE brez vezave na specifično DE,
medtem ko specifični solver vsebuje tudi DE samo.
abstract double IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::DE | ( | double[] | arg | ) | [pure virtual] |
DE, ki jo definira vsak specifični solver zase.
Implemented in IG::MPetekLib::Algorithms::SpecificSolver::DrivenHarmonicPendulum, IG::MPetekLib::Algorithms::SpecificSolver::DrivenNonlinearPendulum, IG::MPetekLib::Algorithms::SpecificSolver::DrivenNonlinPendNondim, IG::MPetekLib::Algorithms::SpecificSolver::MagneticOscHardSpring, and IG::MPetekLib::Algorithms::SpecificSolver::SimpleHarmonicPendulum.
void IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::SolveNumerically | ( | ) | [inline] |
Reši DE tako, da kliče metodo Solve() na splošnem solverju.
void IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::CalculateErrors | ( | ) | [inline] |
Izračuna napake tako, da primerja rešitev pri trenutni dolžini koraka z rešitvijo pri pol manjši dolžini koraka.
void IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::PostProcessErrors | ( | int | forceTakeValue | ) | [inline] |
Najprej izračuna absolutne vrednosti napak. Potem poskuša zgladiti krivuljo (uporabno če ta oscilira).
pointsPerDomain | Če bi bila funkcija monotona, bi se izbralo toliko točk v enakomernih razmikih. |
void IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::VerifyErrorsValidity | ( | int | nPoints | ) | [inline] |
Vezava z isto metodo na solverju. Imena spremenljvik zdaj niso več vezana na solver.
string IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::_name [protected] |
Ime specifičnega solverja, na primer "Vsiljeno nihanje".
List<string> IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::_defaultVariableNames [protected] |
Sem se po kostrukciji dediča vpišejo default vrednosti spremenljivk.
List<string> IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::_variableNames [protected] |
Seznam imen spremenljivk za risanje grafa.
DEInitialProblemSolver IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::_solver [protected] |
Splošni solver - ta vsebuje samo metodo reševanja.
double [] IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::_initialConditions [protected] |
Začetni pogoji. Podati moramo ustrezno število. Npr. DE II. reda: {x, f(x), f'(x), f''(x)}. Za najvišji odvod podamo karkoli, saj se tako ali tako avtomatsko izračuna iz DE.
List<double[]> IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::_solutionMain [protected] |
Tabela iz katere se vzamejo vrednosti za risanje grafa. Tabela mora biti dostopna na specifičnem solverju zaradi zahteve na vmesniku. Na vmesniku pa morabiti prisotna zato, ker se bo na vmesnik skliceval razred GeneralPlotter, ki riše grafe.
string IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::Name [get, set] |
Ime specifičnega solverja, na primer "Vsiljeno nihanje".
Implements IG::MPetekLib::Algorithms::Plotter::IPlottable.
List<string> IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::DefaultVariableNames [get, set] |
Sem se po kostrukciji dediča vpišejo default vrednosti spremenljivk.
List<string> IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::VariableNames [get, set] |
Imena spremenljivk DE.
Implements IG::MPetekLib::Algorithms::Plotter::IPlottable.
DEInitialProblemSolver IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::Solver [get, set] |
Splošni solver - ta vsebuje samo metodo reševanja.
double [] IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::InitialConditions [get, set] |
Začetni pogoji. Podati moramo ustrezno število. Npr. DE II. reda: {x, f(x), f'(x), f''(x)}. Za najvišji odvod podamo karkoli, saj se tako ali tako avtomatsko izračuna iz DE.
List<double[]> IG::MPetekLib::Algorithms::SpecificSolver::SpecificDESolverBase::Solution [get] |
Tabela iz katere se vzamejo vrednosti za risanje grafa. Tabela mora biti dostopna na specifičnem solverju zaradi zahteve na vmesniku. Na vmesniku pa morabiti prisotna zato, ker se bo na vmesnik skliceval razred GeneralPlotter, ki riše grafe.
Implements IG::MPetekLib::Algorithms::Plotter::IPlottable.