啊啊啊啊啊吖

2019-02-15   阅读量: 1918

数据分析师 Python数据分析

如何设置涉及从x = 1到无穷大和循环的和的方程?

我对如何正确设置这个等式感到困惑。找到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)

0.0000 0 2 关注作者 收藏

评论(1)

啊啊啊啊啊吖
2019-02-15

各种方式:

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

0.0000 0 0 回复

推荐课程