What does roots/ eig do exactly?

I want to write a programm on Matlab, without using implemented functions. This programm should be similiar to the Matlab function roots. But I am not sure what roots does, is there any possibility to read something like a pseudo-code of roots or eig? Or is it possible to find .m file that fullfills this conditions?
Is roots simply using the QR decomposition with shifts ?

 采纳的回答

>>edit roots

7 个评论

Or "type roots" to avoid inadvertently changing the original.
Already tried this, but Matlab simply uses eig to compute the roots of a polynomial.
If i type in "edit eig", i only see what eig produces and not how eig works.
Same thing with "type roots"
EIG is a built-in function and we do not distribute that source code.
By the way, please ask your professor (I'm assuming this is homework) to be more specific than "without using implemented functions" in his or her assignments. Technically your code will violate that requirement as soon as you assemble the coefficient vector.
x = [1 2 3]; % This concatenates using the built-in HORZCAT function
It is for my bachelor thesis. I wrote a matlab programm to compute the roots of a polynomial and in the last part of my bachelor thesis I have to compare it to the in Matlab implemented "roots" function. I guess the implemented roots function is writen in C, since I have to reproduce a Matlab code, that is similiar to the roots function to compare my algortihm with the way the "roots" algorithm is computing roots of a polynomial.
Thus I am trying to find out how "roots" / "eig" works.
@Thomas: You really don't want to write your own code to replace eig ... that is going to be way too involved. What is the reason you want to write an equivalent to roots from scratch?
For my bachelor thesis I wrote a programm that computes the roots of a polynomial quiet fast. One part of mine assignment is to compare this algorithm with the in Matlab implemented roots function. It is impossible to compare them directly, since I had to use Matlab to programm the first algorithm. Right now I try to figure out how roots computes the roots of a polynomial.
By looking at the code for roots you have that answer. It constructs a matrix where the characteristic polynomial of that matrix is your polynomial. Then it uses eig to find eigenvalues of that matrix, which will be equal to the roots of the characteristic polynomial.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by