Error while plotting function
1 回表示 (過去 30 日間)
古いコメントを表示
I am new to MATLAB. I wrote the following code:
syms E
L = 2.53805*(10^18)
m2 = 2.6*(10^-23)
c = 1*(10^-16)
%syms m2
syms P Q QE a N1 N2 L1 L2 DEL21 U1 U2 U3 U4
syms residue2
sum1 = 0
sum2 = 0
sum3 = 0
for i = 1:1050
E = .2 + (.001*i);
A = m2/(2*E);
B = a*(E^2);
C = c*(E^5);
DEL21= sqrt(((A-B-C)^2)+(8*((A+B)^2)));
L1 = 0.5*((3*A)+B+C-DEL21);
L2 = 0.5*((3*A)+B+C+DEL21);
N1 = sqrt(((L1-2*A)^2)+2*((A+B)^2));
N2 = sqrt(((L2-2*A)^2)+2*((A+B)^2));
U1 = (L2-2*A)/N2;
U2 = (A+B)/N2;
U3 = (L1-2*A)/N1;
U4 = (A+B)/N1;
P = -4*(U1*U2*U3*U4*((sin(DEL21*L/2))^2));
Q = 380*P;
if (i>=1) && (i<=100)
sum1 = sum1 + Q;
elseif (i>100) && (i<=275)
sum2 = sum2 + Q;
else
sum3 = sum3 + Q;
end
end
residue2 = (45.2 - sum1)^2 + (83.7-sum2)^2 + (22.1-sum3)^2
fplot(@(a) residue2, [10^-20,10^-19])
When I ran the code, I got the following error:
Warning: Function behaves unexpectedly on array inputs. To
improve performance, properly vectorize your function to return
an output with the same size and shape as the input arguments.
> In matlab.graphics.function.FunctionLine>getFunction
In matlab.graphics.function.FunctionLine/updateFunction
In matlab.graphics.function.FunctionLine/set.Function_I
In matlab.graphics.function.FunctionLine/set.Function
In matlab.graphics.function.FunctionLine
In fplot>singleFplot (line 237)
In fplot>@(f)singleFplot(cax,{f},limits,extraOpts,args) (line 192)
In fplot>vectorizeFplot (line 192)
In fplot (line 162)
In New_code (line 46)
Warning: Error updating FunctionLine.
The following error was reported evaluating the function in
FunctionLine update: Unable to convert expression into double
array.
Warning: Error updating FunctionLine.
The following error was reported evaluating the function in
FunctionLine update: Unable to convert expression into double
array.
Can someone help me understand what the issue is and how to resolve it?
1 件のコメント
Rik
2020 年 6 月 12 日
This results in a very complicated symbolic expression. What are you trying to do, and why are you trying to do it with syms? If residue2 is a function of a, why isn't it a function?
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Assumptions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!