Searching for minimum x root for known y
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Panos Katsa
il 20 Feb 2020
Commentato: Panos Katsa
il 20 Feb 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 Commenti
Alex Mcaulley
il 20 Feb 2020
Modificato: Alex Mcaulley
il 20 Feb 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
Risposta accettata
the cyclist
il 20 Feb 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 Commenti
the cyclist
il 20 Feb 2020
Modificato: the cyclist
il 20 Feb 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Import from MATLAB in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!