RichieHard

Untitled

Apr 21st, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. const int N = 3; //Dimensions of Matrix A and vector b
  2. float A[N][N] = {
  3. {0.6077, 0.0014, -0.0021}, //A[0][0], A[0][1], A[0][2]
  4. {0.0, 0.6077, -0.0002 }, //A[1][0], A[1][1], A[1][2]
  5. {0.0, 0.0, 0.6033 } //A[2][0], A[2][1], A[2][2]
  6. };
  7.  
  8.  
  9. //b[0][0], b[0][1], b[0][2]
  10. float b[N] = {-543.9129, 273.3477, 241.1651};
  11.  
  12. float cal[N] = {0.0, 0.0, 0.0};
  13. float raw[N] = {100.0, 100.0, 100.0};
  14. float dif[N] = {0.0, 0.0, 0.0};
  15.  
  16. template<class T> inline Print &operator <<(Print &obj, T arg) { obj.print(arg); return obj; }
  17. void setup() {
  18. Serial.begin(115200);
  19.  
  20. }
  21.  
  22. void loop() {
  23.  
  24. //cal = 1.0e-04 *A*(raw-b);
  25.  
  26. //Difference (raw-b)
  27.  
  28. for (int j = 0; j < N; j++){
  29. dif[j] = raw[j] - b[j];
  30. }
  31.  
  32. Serial << dif[0] << " " << dif[1] << " " << dif[2];
  33. Serial.println();
  34.  
  35. //Moltiplication A*dif
  36.  
  37. int i, j, k;
  38. for (i = 0; i < N; i++)
  39. for(j = 0; j < N; j++)
  40. {
  41. cal[N * i + j] = 0;
  42. for (k = 0; k < N; k++){
  43. cal[N * i + j] = (cal[N * i + j] + A[N * i + k] * dif[N * k + j]);
  44. }
  45. Serial << cal[0] << " " << cal[1] << " " << cal[2];
  46. Serial.println();
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment