Я использую функцию trapz для двух наборов данных, и что-то не так.
Вот представление данных: коэффициент сопротивления давлению и коэффициент подъема http://s17.postimage.org/inxk1xolr/cptheta.jpg
Итакты можешь понять мою проблему;ось у - коэффициент давления Cp, ось х - угол (всего 49 значений, 0: 7,5: 360), данные с матрицей зеленого квадрата - это данные, полученные в результате эксперимента, красная кривая в основном Cp sin(угол), в то время как розовый - Cp cos (угол)
Использование trapz на красном работает отлично, это дает 7,5, и если я переверну входные аргументы для trapz, я получу отрицательный результат этогочисло!Проблема в розовом графике: использование trapz дает огромное число (это неправильно, я не должен этого получать), а при переключении входных аргументов я получаю еще одно огромное число, а не отрицание первого числа, что странно,Я не знаю, что не так, поэтому я использовал quad (нужна функция), чтобы проверить результаты trapz
for i = 1:48
y = @(x) (Cp(i+1) - Cp(i)) / ( theta_rad(i+1) - theta_rad(i) ) * x .* sin(x);
clll(i) = -0.5* quad(y,theta_rad(i), theta_rad(i+1));
end
clll = sum(clll);
for j = 1:48
f = @(t) (Cp(j+1) - Cp(j)) / ( theta_rad(j+1) - theta_rad(j) ) * t .* cos(t);
cdddp(i) = 0.5* quad(f,theta_rad(j), theta_rad(j+1));
end
cdddp = sum(cdddp);
Для первого цикла (квадрат красной кривой) я получил очень близкий ответошибка, вероятно, была связана с линейной интерполяцией, которую я использовал между точками, и для второго цикла я получил разумный ответ, очень маленькое число, которое находится в диапазоне ответа, который я ищу.Я также попробовал трапециевидное правило в Excel и снова получил это огромное число, поэтому я что-то не так делаю.
Редактировать:
Я только что нашелошибка, я использовал трапецию, используя углы в градусах, а не в радианах!Теперь я получаю гораздо меньшие числа, но я думаю, что есть еще одна ошибка, потому что интеграл, использующий квадрат, дает более разумный ответ.
Вот код, который я использую для trapz
Cdp = 0.5*trapz( theta*pi/180, Cp.*cosd(theta) ); %pressure drag coefficient
Cl = -0.5*trapz(theta*pi/180, Cp.*sind(theta) ); %lift coefficient