Zeroes on an equations with a variable of a specific range
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm trying to find zeroes for a specific function but I keep on getting this error message:
"Error using fzero (line 428)
Second argument must be a scalar or vector of length 2.
Error in Problem3b (line 14)
x=fzero(fun,E)"
My current set up looks as such:
m=9.11*10^-31;
hbar=1.055*10^-34;
e=1.602*10^-19;
Vo=(1.42-0.354)*e;
L1=(4*10^-9);
L2=(10*10^-9);
m1=0.067;
m2=0.025;
meff=((2*m1*m*L1)+(m2*m*L2))/(2*L1+L2);
range=linspace(0,Vo,10^6);
E=linspace(0,Vo,200);
k=(sqrt(2.*meff.*E))./hbar;
B=(sqrt(2.*meff.*(Vo-E)))./hbar;
fun=@(E) ((sqrt(2.*E.*(Vo-E)))/(2.*E-Vo))-(tan(k.*L2).*tan(h.*B.*L1));
x=fzero(fun,E)
댓글 수: 2
Jan
2016년 11월 13일
The error message is clear. Read the documentation of fzero and explain, why you provide a 1x200 vector instead of the required value. Guessing your intention is not efficient.
답변 (1개)
Yeshwanth Devara
2016년 11월 16일
As Jan suggested, the second argument expects a real scalar or a 2-element real vector. It appears the second argument in your case is a 1x200 vector. Refer to the documentation for more information on fzero function and its input arguments.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!