From: Mark on 29 Apr 2010 17:15 I'm trying to find the roots of 100 random polynomials of degree 5 and I need help with finding the roots. I know that I can gernerate 100 polynomials by using >> x=rand([100 6]) I know that I can't do >> roots(x) because the the input must be a vector. Is there anyway to to find all the roots of 100 random polynomials without generating each polynomial one by one.
From: Walter Roberson on 29 Apr 2010 17:29 Mark wrote: > I'm trying to find the roots of 100 random polynomials of degree 5 and I > need help with finding the roots. I know that I can gernerate 100 > polynomials by using > >> x=rand([100 6]) > I know that I can't do >> roots(x) > because the the input must be a vector. Is there anyway to to find all > the roots of 100 random polynomials without generating each polynomial > one by one. Not for degree 5. For degree 4, there would be exact solutions you could plug the coefficients into, but for degree 5 unless you are lucky enough to be able to factorize, you need to use something like a binary search for sign changes over a hypothesized interval. I'm not saying that it would not be possible to build a routine that did this kind of search in parallel, but it isn't the way the built-in routines are set up.
From: Steven Lord on 29 Apr 2010 17:43 "Mark " <bobbb909(a)yahoo.com> wrote in message news:hrcsta$g22$1(a)fred.mathworks.com... > I'm trying to find the roots of 100 random polynomials of degree 5 and I > need help with finding the roots. I know that I can gernerate 100 > polynomials by using > >> x=rand([100 6]) > I know that I can't do >> roots(x) > because the the input must be a vector. Is there anyway to to find all the > roots of 100 random polynomials without generating each polynomial one by > one. Loop over the rows of x and call ROOTS on each row, storing the roots back into rows or columns of another matrix or into a cell array (depending on how you need them.) -- Steve Lord slord(a)mathworks.com comp.soft-sys.matlab (CSSM) FAQ: http://matlabwiki.mathworks.com/MATLAB_FAQ
From: us on 29 Apr 2010 17:46 "Mark " <bobbb909(a)yahoo.com> wrote in message <hrcsta$g22$1(a)fred.mathworks.com>... > I'm trying to find the roots of 100 random polynomials of degree 5 and I need help with finding the roots. I know that I can gernerate 100 polynomials by using > >> x=rand([100 6]) > I know that I can't do > >> roots(x) > because the the input must be a vector. Is there anyway to to find all the roots of 100 random polynomials without generating each polynomial one by one. a hint: help num2cell; help cellfun; us
From: Mark on 1 May 2010 18:10 "Steven Lord" <slord(a)mathworks.com> wrote in message <hrcuhl$1r6$1(a)fred.mathworks.com>... > > "Mark " <bobbb909(a)yahoo.com> wrote in message > news:hrcsta$g22$1(a)fred.mathworks.com... > > I'm trying to find the roots of 100 random polynomials of degree 5 and I > > need help with finding the roots. I know that I can gernerate 100 > > polynomials by using > > >> x=rand([100 6]) > > I know that I can't do >> roots(x) > > because the the input must be a vector. Is there anyway to to find all the > > roots of 100 random polynomials without generating each polynomial one by > > one. > > Loop over the rows of x and call ROOTS on each row, storing the roots back > into rows or columns of another matrix or into a cell array (depending on > how you need them.) > > -- > Steve Lord > slord(a)mathworks.com > comp.soft-sys.matlab (CSSM) FAQ: http://matlabwiki.mathworks.com/MATLAB_FAQ > How would I wrtie the for loop? Here is what I got so far N=100; x=zeros(100, 6); % cretes an empty 100 x 6 matrix for k=1:N x(k)=roots(rand([1 6])); end x I know that this won't work so how can I get it to work.
|
Next
|
Last
Pages: 1 2 Prev: Using interp1 for timeseries data Next: Matlab OOP (Basic): How to change the local variables |