Привет всем, у меня есть решение бегущей волны, нарисованное на каждом временном шаге для набора данных, полученных в результате предыдущего моделирования.

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')

ПОСМОТРЕТЬ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ