2016-05-17 6 views
2

У меня есть файл функций с моими дифференциальными уравнениями, я выполняю функцию ode23s для функции в стандартной форме, то есть [t, m] = ode23s ('DE_function', tspan, [mA pA mB pB mC pC mD], optionsDE, p)Функции Matlab ode для получения заданного количества значений/выходов

Я получаю около 150 значений/результатов/выходов для каждого мА и так далее. Мои ode23s работают нормально. У меня есть экспериментальный набор данных для одного и того же мА и т. Д., Который я должен использовать для вычисления ошибки наименьшего квадрата. Я пытаюсь сделать это: a = m (:, 1) - A (:, 2); и так далее. Здесь, в моих экспериментальных данных, у меня есть только 20 значений/результатов/выходов и т. Д. В соответствии с 20 точками времени. Я также определил те же моменты времени для tspan. Но так как мои матрицы не соответствуют размерности, я не могу продолжить свои вычисления. Есть ли способ получить ровно 20 значений в соответствии с 20 временными точками, такими как 1, 2 и т. Д. В ode23s, а также может быть способ получить и сохранить их только.

Я пытался найти решение этой ошибки, но не смог найти что-либо подходящее. Большое спасибо за любые предложения и хиты.

ответ

1

В документации Matlab есть все, что вам нужно. Когда вы вызываете ode23, вы можете указать временные местоположения в tspan.

"Interval of integration, specified as a vector. At minimum, tspan must be a two element vector [t0 tf] specifying the initial and final times. To obtain solutions at specific times between t0 and tf, use a longer vector of the form [t0,t1,t2,...,tf]. The elements in tspan must be all increasing or all decreasing."

+0

Спасибо большое, я искал именно что-то вроде этого. – user3790018