Решение систем нелинейных уравнений https://www.mapleprimes.com/users/one%20man/posts?page=1
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

sysosndan.h 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef SYSOSNDAN_H
  2. #define SYSOSNDAN_H
  3. #include <fstream>
  4. #include <sstream>
  5. #include <string>
  6. #include <vector>
  7. typedef std::vector < double > state_type;
  8. typedef void (*func_t)(const state_type &, state_type &, const double );
  9. struct soldif
  10. {
  11. double N; //число шагов
  12. double dt; //точность
  13. int dln; //размерность пространства
  14. std::string str_sm; //название переменной
  15. state_type x0; //начальное положение
  16. int nsv; //число свободных переменных
  17. int nv; //размерность вектора начального положения
  18. std::vector<std::string> eqn; //уравнения
  19. std::vector<std::string> eqn_svob; //уравнения свободных недоопределенной системы nsv=2,3..
  20. std::vector<std::string> up; //управляющие параметры
  21. bool npp; //не перезаписывать cpp-файл
  22. bool noc; //не компилировать cpp-файл
  23. };
  24. class sys_osn_dan
  25. {
  26. public:
  27. sys_osn_dan(std::stringstream &, const bool, const bool); // исходные данные
  28. //sys_osn_dan(draghilevinout &); // исходные данные
  29. void set_par_diff(double &_N, double &_dt){N=_N; dt=_dt;};
  30. void set_coord(state_type &_x) {x=_x;};
  31. void set_resIN(state_type &_coord) {res=_coord;};
  32. state_type &get_resOUT() {return res;};
  33. soldif &get_par_diff();
  34. private:
  35. void isxod_dan(std::stringstream &); // исходные данные
  36. std::string &razdto_(std::string &); //замена разделителей на _
  37. soldif A;
  38. int n_svob; //число свободных переменных
  39. int N_var;
  40. std::string dimension, str_sm;
  41. static unsigned dim_line;
  42. state_type x, res;//res - полученное решение
  43. double dt, N;
  44. bool nocomp, nocpp;
  45. std::vector<std::string> equations, equations_svob, uprav_par;
  46. };
  47. #endif