How to 'map' an equation in another?
Show older comments
Hello everyone,
I've the following equation (fig1), where mu is a function of both T and gamma_dot. Other parameters are defined in table of the same fig.1, while T_g is 373 and is costant.
I would map results in another form (fig2), finding the right values for 'D' and 'b' for the best mapping. I would do this in order to have the contribution of T and gamma_dot decoupled in the final equation. In fig.2 'gamma' is the same as the previously defined 'gamma_dot', and the same is for 'n'.
In order to do this I created the following double for, through which I extract mu values for different gamma_dot (g variable) and T values (temp variable).
n=0.33;
g=linspace(0.1,1000);
T_vector=linspace(300,600,100);
for i=1:length(g)
for j=1:length(T_vector)
temp=T_vector(j);
if(temp>373)
mu(i,j)=(3.63e11*exp(-(27.21*(temp-373.15))/(92.85+(temp-373))))/((1+(3.63e11*exp(-(27.21*(temp-373.15))/(92.85+(temp-373)))*g(i)/29000))^(1-n));
else
mu(i,j)=(3.63e11)/((1+(3.63e11*exp(-(27.21*(temp-373))/(92.85+(temp-373)))*g(i)/29000))^(1-n));
end
end
end
Now, I don't figure how to continue in this mapping process.
I will really appreciate everyone who will help me in perform this task
Answers (1)
Star Strider
on 3 Feb 2021
I have no idea what you want to do.
Try this:
mu0 = @(A1,A2,T,Tg,E) (E.*exp(A1.*(T-Tg)./(A2+(T-Tg)))).*(T>Tg) + E.*(T<=Tg);
mu = @(A1,A2,T,Tg,E,gammadot,tau,n) mu0(A1,A2,T,Tg,E)./(1+(gammadot.*mu0(A1,A2,T,Tg,E)/tau).^(1-n));
tau = 2.9E4;
n = 0.33;
E = 3.63E11;
A1 = 27.21;
A2 = 92.85;
Tg = 373;
% % % T = b(1), gammadot = b(2)
[B,fval] = fminunc(@(b)mu(A1,A2,b(1),Tg,E,b(2),tau,n), randi(500,2,1));
fprintf(1,'T = %9.3f\ngammadot = %9.3f\n', B)
Make appropriate changes to get the result you want.
Categories
Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!