Решение систем нелинейных уравнений 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 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. void set_uprIN(state_type &_upr_) {upr_par=_upr_;};
  33. state_type &get_resOUT() {return res;};
  34. state_type &get_uprOUT() {return upr_par;};
  35. soldif &get_par_diff();
  36. private:
  37. void isxod_dan(std::stringstream &); // исходные данные
  38. std::string &razdto_(std::string &); //замена разделителей на _
  39. soldif A;
  40. int n_svob; //число свободных переменных
  41. int N_var;
  42. std::string dimension, str_sm;
  43. static unsigned dim_line;
  44. state_type x, res, upr_par;//res - полученное решение
  45. double dt, N;
  46. bool nocomp, nocpp;
  47. std::vector<std::string> equations, equations_svob, uprav_par_naz;
  48. };
  49. #endif