How to solve algebraic equations for different values of variables ?

3 Ansichten (letzte 30 Tage)
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 )

Akzeptierte Antwort

VBBV
VBBV am 24 Mai 2024
eqn = Ac.*I.*eta-m.*c.*(Te-Ti)==0;
  3 Kommentare
VBBV
VBBV am 24 Mai 2024
Bearbeitet: VBBV am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Torsten
Torsten am 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

Kategorien

Mehr zu Oceanography and Hydrology finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by