Привет всем, у меня есть решение бегущей волны, нарисованное на каждом временном шаге для набора данных, полученных в результате предыдущего моделирования.
Tmax = 10000; m =load('solution.mat'); SS = m.sol; N = m.N1; for i = 1:50:Tmax Xval = SS(i,N); hold on plot(N,Xval,'Linewidth',2); end hold off
а ниже приведен результат, который я получил из приведенного выше кода, где ось x представляет расстояние (N) от 0 до 200, а ось y принимает значения от 0 до 1. .Каждая цветная линия рисуется с разным временным шагом.
Далее я хотел бы вычислить скорость на каждом временном шаге, когда y=0,5. т.е. Я хочу определить значение x, когда y=0,5 для каждой цветовой линии, и вычислить скорость как
. Основной вопрос здесь заключается в том, что иногда в Xval нет точных точек со значением 0,5 или нет точного значения N, связанного со значением 0,5.
Я был бы рад, если бы кто-нибудь помог мне создать цикл для этого расчета.
ПРИМЕЧАНИЕ:-
Matlabsolutions.com предоставляет новейшую справку по домашнему заданию MatLab, справку по выполнению заданий MatLab, Помощь по финансовым заданиям для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, механическое, гражданское строительство со 100% выходом. Код Matlab для BE, B .Tech,ME,M.Tech, доктор философии. Ученые со 100% гарантией конфиденциальности. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Простой подход пересечения работает —
t = linspace(0, 25, 450); x = sin(2*pi*t+rand(size(t)))/2+0.5; L = numel(t); xval = 0.5; tidx = find(diff(sign(x-xval))); % Approimate Intersections for k = 1:numel(tidx) idxrng = max(1,tidx(k)-1) : min(tidx(k)+1,L); tv(k,:) = interp1(x(idxrng), t(idxrng), xval); % Exact Interseections end xv = ones(size(tv)) * xval; Velocity = 1 ./ diff(tv); Results = table(tv(2:end), Velocity, 'VariableNames',{'Time','Velocity'}) Results = 61×2 table Time Velocity _______ ________ 0.86599 2.0118 1.4494 1.7142 1.9056 2.1916 2.4067 1.9959 2.8642 2.1857 3.3668 1.9895 3.8813 1.9438 4.3854 1.9837 4.8913 1.9769 5.4618 1.7527 5.8731 2.4316 6.4307 1.7934 6.8758 2.2465 7.3968 1.9195 7.8853 2.0469 8.3841 2.0048 figure plot(t, x, 'DisplayName','Original Data') hold on plot(tv, xv, 'xr', 'DisplayName','Exact Intersections') hold off grid legend('Location','best')
ПОСМОТРЕТЬ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ