what is this error in MATLAB???
??? Output argument "G" (and maybe others) not assigned during call to "C:\Users\Sepehrinia\Desktop\Matlab1\bairstow.m>bairstow".
@experimentX
just take a look and see if you know this or not...i dont wanna waste your time so much
probably you haven't define G before you used it.
i have a : function G = bairstow(a,r,s) when i call this other place it gives me that error
just call function bairstow(a,r,s) on your console and see what happens
thats error again :(
can you post the whole code for that function?
no this function? did you code it yourself? bairstow( ... )
yeah
could you send the code of that function?
its the bairstow method for solving P(x)=0 P(x) is a polynomial
is it defined inside matlab?
no i code it myself
lol ... could you send me that code?
lol...man thats up there function G=...
woops ... didn't see that!!
have you assigned G= something inside bairstow.m??
i think no
Yup ... that's the problem. Put G = 0 at the end of bairstow.m
or out G = ... the value where you are outputting ... I can't even read your code. you sure know how to do complex thing.
let me try it
thank u man...thats fine :)
man u saved my life
lol ... no probs man!! someday it might be useful to me too .. :D
i was stuck here for one and half hour
haha ... happens sometimes :D
santosh copy the hole thing and run it...see what happens
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]
??? Attempted to access q(2); index out of bounds because numel(q)=1. Error in ==> test at 6 z2(p)=q(2);
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);
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
test.m is my file where i pasted your running code.
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])
sorry man i gotta go see u later :)
and besides that error i get
sure ... anytime :)
yeah thats exactly what i wanted cya my friend
cya !!
Join our real-time social learning platform and learn together with your friends!