Нахождение площади гистерезисной кривой (графика) в Matlab

Я построил кривую гистерезиса (fy против uy) в Matlab. Я хочу найти площадь участка. Я знаю о команде trapz. Однако в моем случае у меня нет двух конкретных уравнений кривой. Как мне это сделать?

Также некоторые участки кривой лежат в отрицательной области. Как я могу убедиться, что области не отменяют друг друга?

uy =
   1.0e-03 *
   [-0.2238
   -0.3616
   -0.4817
   -0.5642
   -0.5962
   -0.5752
   -0.5048
   -0.3945
   -0.2603
   -0.1222
   -0.0020
    0.0807
    0.1129
    0.0918
    0.0213
   -0.0889
   -0.2232
   -0.3615
   -0.4819
   -0.5648
   -0.5972
   -0.5760
   -0.5055
   -0.3952
   -0.2607]



fy =
   -0.0000
   -1.4886
   -2.7506
   -3.5939
   -3.8900
   -3.5939
   -2.7506
   -1.4886
    0.0000
    1.4886
    2.7506
    3.5939
    3.8900
    3.5939
    2.7506
    1.4886
   -0.0000
   -1.4886
   -2.7506
   -3.5939
   -3.8900
   -3.5939
   -2.7506
   -1.4886
    0.0000

person Priyanka Raikar    schedule 01.03.2016    source источник
comment
Примените теорему Грина для преобразования вычисления площади в контурную интергацию: en.wikipedia.org/wiki /Green%27s_theorem#Расчет площади   -  person    schedule 01.03.2016


Ответы (1)


Используйте функцию polyarea(X, Y). Чтобы убедиться, что вы рассматриваете правильный многоугольник, используйте функцию fill(X, Y, color) для построения многоугольника, который вы оцениваете.

Редактировать:
В вашем случае проблема с использованием этих функций заключается в том, что вы проходите 1,5 раза по кривой, просто с немного другими значениями во второй раз. Способ исправить это — сократить ваши данные в первом раунде. Вы можете сделать это:
1) выполнив всего один раунд при сборе этих данных
2) упорядочив данные таким образом, чтобы вы прошлись по кривой только один раз.

В конкретном случае данных, которые вы отправили сюда, вы должны остановиться на 17-м значении. Делая это, я получаю правильный многоугольник введите здесь описание изображения

person IntFabio    schedule 01.03.2016
comment
Я только что попробовал, и это так. Просто будьте осторожны с дубликатами (если они есть) или попробуйте замкнуть многоугольник, отсортировав точки, а затем добавив дополнительную точку, равную первой, но в конце. Если у меня будет время завтра, я могу опубликовать свои результаты. - person IntFabio; 01.03.2016
comment
Посмотрите отредактированную версию первого поста. Это работает таким образом! - person IntFabio; 02.03.2016
comment
Пожалуйста, если это решило вашу проблему, примите ответ. Таким образом, другие пользователи узнают, что это сработало. Спасибо :) - person IntFabio; 02.03.2016
comment
Я новичок в переполнении стека. Как принять ответ? - person Priyanka Raikar; 03.03.2016
comment
щелкните зеленую галочку в моем основном ответе. Спасибо :) - person IntFabio; 03.03.2016