Sum_ZeroPoints.cpp 545 B

1234567891011121314151617181920212223242526272829
  1. // 输入: L0:函数值, 行向量
  2. // x0:自变量x的值,行向量
  3. // 输出: Num:零点数目
  4. // Pos:零点位置
  5. // 功能: 根据函数值计算零点
  6. // 编写: 李兆亭,2019 / 11 / 04
  7. #include "GPM.h"
  8. int Sum_ZeroPoints(vec* L0, vec* x0, int* Num, mat* Pos) {
  9. int max_row_len = (size(*Pos))(0);
  10. int row_len = (size(*L0))(0);
  11. *Num = 0;
  12. int i = 0;
  13. while (i < row_len - 1) {
  14. if ( (*L0)(i)*(*L0)(i + 1) <= 0 ) {
  15. (*Pos)(*Num, 0) = (*x0)(i);
  16. (*Pos)(*Num, 1) = (*x0)(i + 1);
  17. i = i + 1;
  18. *Num = *Num + 1;
  19. }
  20. else {
  21. i = i + 1;
  22. }
  23. }
  24. return 1;
  25. }