Интеграция числовых данных

Завтра я пишу тест и собираюсь сделать все для Matlab, чтобы сэкономить время.

Некоторые вопросы требуют численного интегрирования точек данных (точек, не обязательно функций).

Например

C=[0 1 5 8 10 8 6 4 3 2.2 1.5 0.6 0];

Я использовал trapz(C) определить интеграл данных (площадь под кривой) и сравнить с тем, что получает мой учебник. Часто разница между ними слишком велика.

Есть ли другой простой и быстрый способ, которым вышеуказанные данные могут быть интегрированы численно с помощью Matlab, например, с использованием правила Симпсона, Гаулега или сплайна?

Я посмотрел на integrate(), но это, кажется, работает только на функции?

1 ответ

Ваши точки данных расположены на расстоянии dx = 1? например, если dx равно.5, это изменит результат в два раза.

В противном случае, я бы указал: точка данных сама по себе, при нулевой ширине, создаст область 0: точка в том, что ваш учебник должен предполагать некоторую интерполяцию между ними, чтобы получить осмысленный интеграл. Если это сегменты прямой линии, trapz(C) должен дать вам правильный результат; если ваш учебник делает что-то еще (например, точки, взятые из гладкой функции), неудивительно, что результаты будут другими.

Другие вопросы по тегам