## mukushla 3 years ago what is this error in MATLAB???

1. mukushla

??? Output argument "G" (and maybe others) not assigned during call to "C:\Users\Sepehrinia\Desktop\Matlab1\bairstow.m>bairstow".

2. mukushla

@experimentX

3. mukushla

just take a look and see if you know this or not...i dont wanna waste your time so much

4. experimentX

probably you haven't define G before you used it.

5. mukushla

i have a : function G = bairstow(a,r,s) when i call this other place it gives me that error

6. experimentX

just call function bairstow(a,r,s) on your console and see what happens

7. mukushla

thats error again :(

8. experimentX

can you post the whole code for that function?

9. experimentX

no this function? did you code it yourself? bairstow( ... )

10. mukushla

yeah

11. experimentX

could you send the code of that function?

12. mukushla

its the bairstow method for solving P(x)=0 P(x) is a polynomial

13. experimentX

is it defined inside matlab?

14. mukushla

no i code it myself

15. experimentX

lol ... could you send me that code?

16. mukushla

lol...man thats up there function G=...

17. experimentX

woops ... didn't see that!!

18. experimentX

have you assigned G= something inside bairstow.m??

19. mukushla

i think no

20. experimentX

Yup ... that's the problem. Put G = 0 at the end of bairstow.m

21. experimentX

or out G = ... the value where you are outputting ... I can't even read your code. you sure know how to do complex thing.

22. mukushla

let me try it

23. mukushla

thank u man...thats fine :)

24. mukushla

man u saved my life

25. experimentX

lol ... no probs man!! someday it might be useful to me too .. :D

26. mukushla

i was stuck here for one and half hour

27. experimentX

haha ... happens sometimes :D

28. mukushla

santosh copy the hole thing and run it...see what happens

29. mukushla

and in end of the function according to what u said turn [X1(1:end) X2(1:end) x3] to G=[X1(1:end) X2(1:end) x3] and [X1(1:end) X2(1:end) y3] to G=[X1(1:end) X2(1:end) y3]

30. experimentX

??? Attempted to access q(2); index out of bounds because numel(q)=1. Error in ==> test at 6 z2(p)=q(2);

31. experimentX

Woops ... with changing that part ??? Attempted to access q(2); index out of bounds because numel(q)=1. Error in ==> test at 6 z2(p)=q(2);

32. mukushla

function G = bairstow(a,r,s) A=a(2:end); m=length(A); k=1; while m>2 b1=1; b2=1; while abs(b1)+abs(b2)>0.0000001 b(m)=0; b(m-1)=0; for i=m+2:-1:5 b(i-4)=A(i-2)+r*b(i-3)+s*b(i-2); end b0=A(2)+r*b(1)+s*b(2); b1=A(1)+r*b0+s*b(1); b2=a(1)+r*b1+s*b0; c(m-2)=0; if m>3 c(m-3)=0; else c(2)=0; end for i=m:-1:5 c(i-4)=b(i-2)+r*c(i-3)+s*c(i-2); end c0=b(2)+r*c(1)+s*c(2); c1=b(1)+r*c0+s*c(1); c2=b0+r*c1+s*c0; c3=b1+r*c2+s*c1; deltar=(c1*b2-c2*b1)/(c2^2-c1*c3); deltas=(c3*b1-c2*b2)/(c2^2-c1*c3); r=r+deltar; s=s+deltas; end X1(k)=(r+sqrt(r^2+4*s))/2; X2(k)=(r-sqrt(r^2+4*s))/2; k=k+1; A=b(1,1:m-2); a(1)=b0; m=m-2; r=1.1*r; s=1.1*s; end if b(2)==0 x3(1)=-b0/b(1); G=[X1(1:end) X2(1:end) x3]; else y3(1)=(-b(1)+sqrt((b(1))^2-4*b0*b(2)))/(2*b(2)); y3(2)=(-b(1)-sqrt((b(1))^2-4*b0*b(2)))/(2*b(2)); G=[X1(1:end) X2(1:end) y3]; end

33. experimentX

test.m is my file where i pasted your running code.

34. mukushla

K=linspace(0,8,2000); p=1; for i=1:length(K) q=bairstow([6+6*K(i) 11 6 1],2,2); z1(p)=q(1); z2(p)=q(2); z3(p)=q(3); y3(p)=0; p=p+1; end plot(z1,'.') hold on plot(z2,'.g') plot(z3,y3,'.r') axis([-4 1 -3 3])

35. mukushla

sorry man i gotta go see u later :)

36. experimentX

and besides that error i get

37. experimentX

sure ... anytime :)

38. mukushla

yeah thats exactly what i wanted cya my friend

39. experimentX

cya !!