How to solve algebraic equations for different values of variables ?

13 vues (au cours des 30 derniers jours)
Aiden James le 24 Mai 2024 à 5:45
Commenté : Aiden James le 24 Mai 2024 à 11:23
I am new to MATLAB, I want to solve the equation “eqn” to get the values of “Te” for different values of I. How solve thIS equation. I have made the code. But I am not getting the numerical valueS of “Te”.
clear all
close all
clc
% For ETC collector
syms Te
filename = '1.xlsx';
% Convert table to array
T= table2array(T);
% Inpit data
Ac=repelem(2,480)
I=T'
eta_0=0.7
a1=repelem(5,480)
a2=repelem(0.0057,480)
Ti =repelem(30,480)
T_air=repelem(30,480)
m =repelem(0.04,480)
c =repelem(4,480)
% Efficiency of collector
eta=(eta_0-a1.*(((Ti+Te)./2)-T_air)./I-a2.*(((Ti+Te)./2)-T_air).^2./I);
% Solve the equation
eqn = Ac.*I.*eta-m.*c.*(Te-Ti);
S = solve(eqn,Te);
% NOTE: there are 2 roots for above equation so consider positive value only
S=round(S)
S = S( S>=0 )
1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Aiden James le 24 Mai 2024 à 8:17
Thanks for quick reply. Please find the data file in the attachment.

Connectez-vous pour commenter.

Réponse acceptée

VBBV le 24 Mai 2024 à 6:26
```eqn = Ac.*I.*eta-m.*c.*(Te-Ti)==0;
```
3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
VBBV le 24 Mai 2024 à 10:59
Modifié(e) : VBBV le 24 Mai 2024 à 11:07
@Aiden James, you have vector of equations to solve and only one unknown to determine the value for those vector of equations. You can solve them by using a for loop as shown below
clear all
close all
clc
% For ETC collector
syms Te
filename = 'a1.xlsx';
% Convert table to array
T= table2array(T);
% Inpit data
Ac=repelem(2,480);
I=T';
eta_0=0.7;
a1=repelem(5,480);
a2=repelem(0.0057,480);
Ti =repelem(30,480);
T_air=repelem(30,480);
m =repelem(0.04,480);
c =repelem(4,480);
% Efficiency of collector
eta=(eta_0-a1.*(((Ti+Te)./2)-T_air)./I-a2.*(((Ti+Te)./2)-T_air).^2./I);
% Solve the equation
eqn = Ac.*I.*eta-m.*c.*(Te-Ti)==0;
for k = 1:numel(eta)
S{k} = solve(eqn(k),Te);
end
S = S{:}
S =
% NOTE: there are 2 roots for above equation so consider positive value only
S = vpa(S,3)
S =
S = double(S(S>=0))
S = 125.3670
Aiden James le 24 Mai 2024 à 11:23
Thanks

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten le 24 Mai 2024 à 9:51
% Solve the equation
eqn = Ac.*I.*eta-m.*c.*(Te-Ti)==0
for i=1:numel(eqn)
s = solve(eqn(i),Te);
S(i) = vpa(s(s>=0));
end
S
1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Aiden James le 24 Mai 2024 à 11:23
Thanks

Connectez-vous pour commenter.

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by