我对如何正确设置这个等式感到困惑。找到V(i,j)的值。最终结果将是随着时间的推移绘制V. 我知道需要循环才能使这个等式起作用,但是在设置它时我会迷失方向。基本上我试图从n = 1到无穷大的总和,(1-(-1)^n)/(n^4 *pi^4)*sin((n*pi*c*j)/L)*sin((n*pi*i)/L) 我原本以为我应该使它成为一个while循环,将n递增1,直到我达到10左右才知道输出会是什么样子。所有变量都是未知的,并且再次添加值以查看绘图的外观。我有另一个代码,其中等式仅依赖于i和j。然而,在这个n期间,我被抛弃了。建立方程式的任何建议都会很棒。谢谢。
L=10;
x=linspace(0,L,30);
t1= 50;
X=30;
p=1
c=t1/1000;
V=zeros(X,t1);
V(1,:)=0;
V(30,:)=0;
R=((4*p*L^3)/c);
n=1;
t=1:50;
while n < 10
for i=1:31
for j=1:50
V(i,j)=R*sum((1-(-1)^n)/(n^4 *pi^4)*sin((n*pi*c*j)/L)*sin((n*pi*i)/L));
end
end
n=n+1;
end
figure(1)
plot(V(i,j),t)








各种方式:
1)将总和计算为一对一Nmax:
Nmax = 30;
Vijn = @(i,j,n) R*((1-(-1)^n)/(n^4 *pi^4)*sin((n*pi*c*j)/L)*sin((n*pi*i)/L));
i = 1:31;
j = 1:50;
n = 1:Nmax;
[I,J,N] = ndgrid(i,j,n);
V = arrayfun(Vijn,I,J,N);
Vc = cumsum(V,3);
% now Vc(:,:,k) is sum_n=1^{k+1} V(i,j,n)
figure(1);clf;imagesc(Vc(:,:,end));
2)无限循环
n = 1;
V = 0;
i = 1:31;
j = 1:50;
[I,J] = meshgrid(i,j);
while true
V = V + R*((1-(-1)^n)/(n^4 *pi^4)*sin((n*pi*c*J)/L).*sin((n*pi*I)/L));
n = n + 1;
figure(1);clf;
imagesc(V);
title(sprintf('N = %d',n))
drawnow;
pause(0.25);
end