How to solve algebraic equations for different values of variables ?

1 vue (au cours des 30 derniers jours)
Aiden James
Aiden James le 24 Mai 2024
Commenté : Aiden James le 24 Mai 2024
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
% Read the solar radiation data
filename = '1.xlsx';
T = readtable(filename)
% 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 commentaire
Aiden James
Aiden James le 24 Mai 2024
Thanks for quick reply. Please find the data file in the attachment.

Connectez-vous pour commenter.

Réponse acceptée

VBBV
VBBV le 24 Mai 2024
eqn = Ac.*I.*eta-m.*c.*(Te-Ti)==0;
  3 commentaires
VBBV
VBBV le 24 Mai 2024
Modifié(e) : VBBV le 24 Mai 2024
@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
% Read the solar radiation data
filename = 'a1.xlsx';
T = readtable(filename);
% 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

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 24 Mai 2024
% 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

Catégories

En savoir plus sur Oceanography and Hydrology 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