Error in the for loop of my function

5 ビュー (過去 30 日間)
Athira T Das
Athira T Das 2022 年 6 月 23 日
回答済み: Sai Charan Sampara 2022 年 6 月 23 日
I am trying to plot the given function :
clear all
clc
syms z
syms s1 s2 m1 m2 j1 j2
w = 0.02;
M=1;
b=0.1;
z=linspace(-0.1,0.1);
for m1=0:M
for m2=0:M
for s1=0:m1/2
for j1=0:m1-2*s1
for s2=0:(M-m1)/2
for j2=0:M-m1-2*s2
A1=symsum(factorial(M)/(factorial(m1)*factorial(M-m1))*(1i)^(M-m1),m1,0,M);
A2=symsum(factorial(M)/(factorial(m2)*factorial(M-m2))*(-1i)^(M-m2),m2,0,M);
A3=symsum(((-1)^(s1)*factorial(m1))/(factorial(s1)*factorial(m1-2*s1))*(2*1i)^(m1-2*s1),s1,0,m1/2);
A4=symsum((1/(2*1i))^(m2+j1),j1,0,m1-2*s1)*(exp(2*b*z))*hermiteH(m2+j2,(1+(1i*b/2*w)));
A5=symsum(((-1)^(s2)*factorial(M-m1))/(factorial(s2)*factorial(M-m1-2*s2)*(2*1i)^(M-m1-2*s2)),s2,0,(M-m1)/2);
A6=symsum((1/(2*1i))^(M-m2+j2),j2,0,M-m1-2*s2)*(exp(2*b*z))*hermiteH(M-m2+j2,(1-(1i*b/2*w)));
W=A1*A2*A3*A4*A5*A6
end
end
end
end
end
end

回答 (2 件)

Walter Roberson
Walter Roberson 2022 年 6 月 23 日
The second parameter to symsum must be a scalar symbolic variable that will be summed over. However in your code, the second parameter is a numeric variable (assigned by your for loops)
It looks to me as if none of those for loops should be present.

Sai Charan Sampara
Sai Charan Sampara 2022 年 6 月 23 日
You seem to have used both a for loop and symsum function. The symsum function already runs a loop based on the index and range given as inputs.The first input of symsum must be a function of a variable(syms data type). Refer to the following link for more details on the symsum function:

Community Treasure Hunt

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

Start Hunting!

Translated by