Smooth decay of a function
이전 댓글 표시
I have a function which dies of quickely. I need this function to smoothly decay off to 0 . Is there any way in Matlab to make that happen?
댓글 수: 4
Alan Stevens
2020년 7월 26일
What's the function?
Saurav
2020년 7월 26일
Image Analyst
2020년 7월 26일
Please give values for everything in that alphabet soup. And include a screenshot of what you got, and what you'd like to achieve, but only after you read this link.
T = linspace(-5, 5, 500);
Tc = 3;
y = 2;
a = 7;
b = 6;
m = ((-b + (((b*b)-(4*y*a*(T-Tc))).^0.5))/(2*y)).^0.5;
subplot(2, 1, 1);
plot(T, real(m), 'b-', 'LineWidth', 2);
title('Real(m) vs. T', 'FontSize', 20);
grid on;
xlabel('T', 'FontSize', 20);
ylabel('real(m)', 'FontSize', 20);
% For T>Tc, m(T) becomes complex so m(T>Tc)=0
% Hence I want m(T) to smoothly decay to 0 for T>Tc
subplot(2, 1, 2);
plot(T, imag(m), 'b-', 'LineWidth', 2);
title('Imag(m) vs. T', 'FontSize', 20);
grid on;
xlabel('T', 'FontSize', 20);
ylabel('imag(m)', 'FontSize', 20);

For the random values I chose, it does look like the curve approaches the Tc point smoothly. What does it look like for you, with your values???
Saurav
2020년 7월 27일
답변 (1개)
Alan Stevens
2020년 7월 26일
편집: Alan Stevens
2020년 7월 26일
How about writing a function like:
function mfn = mvalue(T,Tc,a,b,y)
disc = b^2 - 4*y*a*(T - Tc);
quad = -b + disc^0.5/(2*y);
if disc>0 && quad>0
mfn = quad^0.5;
else
mfn = 0;
end
end
and then calling
m(i) = mvalue(T(i), Tc, a, b, y);
댓글 수: 5
Saurav
2020년 7월 26일
Alan Stevens
2020년 7월 26일
The value of m could be complex before T reaches Tc (if quad is negative). The mvalue function simply returns zero whenever it would otherwise have returned a compex number.
Saurav
2020년 7월 26일
Alan Stevens
2020년 7월 26일
편집: Alan Stevens
2020년 7월 26일
Impossible to tell without knowing about the system you are modelling. Mathematically you could probably multiply m by some sort of exponential decay term. However, would that make sense in the context of your model?
Saurav
2020년 7월 27일
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!