Searching for minimum x root for known y
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Panos Katsa
le 20 Fév 2020
Commenté : Panos Katsa
le 20 Fév 2020
Hello. I am beginner with matlab and I'm getting confused so I would like some help.
I have the equation y = -0,1042x^5 + 1,9167x^4 - 13,062x^3 + 39,333x^2 - 45,083x + 21 and I have also inserted a matrix of 8760 y values.
I want to build a table that displays the minimum root of x every time for given y values.
Any help?
3 commentaires
Alex Mcaulley
le 20 Fév 2020
Modifié(e) : Alex Mcaulley
le 20 Fév 2020
For each value in y you can obtain the roots using roots function and then take the minimum value using min
Hints:
- for loop might be useful
- read the documentation of roots
Réponse acceptée
the cyclist
le 20 Fév 2020
This code finds the minimum root, for y == 43.
y = 43;
p = [-0.1042 1.9167 13.062 39.333 45.083 21-y];
min(roots(p))
You'll need to run a loop over your values of y.
5 commentaires
the cyclist
le 20 Fév 2020
Modifié(e) : the cyclist
le 20 Fév 2020
Here is one way to convert from table to numeric. I also documented what the prior code was doing.
% Create a variable y that is a table (where the variable *inside* the table is also named
% "y"). You should use your real data here instead
y = table([22; 44],'VariableNames',{'y'});
% Convert it to numeric
y_numeric = table2array(y);
% Get the number of values
y_count = numel(y_numeric);
% Preallocate the array for the minimum values
minValues = zeros(y_count,1);
% Loop over each value of y, and store the minimum root
for iy = 1:y_count
p = [-0.1042 1.9167 13.062 39.333 45.083 21-y_numeric(iy)];
minValues(iy) = min(roots(p));
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Import from MATLAB 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!