# Solve equation including parameters dependent on main variable

9 views (last 30 days)
Dhruv Borda on 21 Jan 2022
Edited: Yongjian Feng on 21 Jan 2022
% Temperature
T_C=300;
T_E=linspace(0,300);
tau=T_C./T_E;
% Phase angle
X=0;
% Heat lifted
Q_max=0.085377;
Analysis
S=(2*X*tau)./(tau+1);
% Heat lifted and Work done
A=sqrt(tau.^2 + k^2 + 2*tau*k*cos(alpha));
B=tau + k + 2*S;
delta=A./B;
theta=(atan((k*sin(alpha))./(tau + k*cos(alpha))));
For range of values of tau, I want to have 'k'. But the problem is there are variables in Q_max equation such as delta and theta which are dependant on k by themselves. What should I do?
ratio=solve('Q_max==(pi*sqrt(1-delta).*delta.*sin(theta))./((1+k).*sqrt(1+delta).*(1+sqrt(1-delta.^2)))','k');

Yongjian Feng on 21 Jan 2022
Edited: Yongjian Feng on 21 Jan 2022
1. k shall be a symbol, once you do this before it is used, then this will take care of the dependency of delta and theta.
syms k;
2. solve takes function and symbol(s), not char array
ratio=solve(Q_max==(pi*sqrt(1-delta).*delta.*sin(theta))./((1+k).*sqrt(1+delta).*(1+sqrt(1-delta.^2))), k);
3. There are some issues of your script, for example, T_E starts with 0, so tau = T_C/T_E is infinity. You might need to clean those up.

R2020a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by