我的matlab程序大家给指点下怎么回事,运行不出来?lx=50;ly=25;v1=zeros(ly,lx);for i=2:49v1(i,25)=1;v1(i,0)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);endv2=v1;maxt=1;t=0;k=0;while(maxt>1e-6)k=k+1;maxt=0;for i=2
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/17 07:10:28
![我的matlab程序大家给指点下怎么回事,运行不出来?lx=50;ly=25;v1=zeros(ly,lx);for i=2:49v1(i,25)=1;v1(i,0)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);endv2=v1;maxt=1;t=0;k=0;while(maxt>1e-6)k=k+1;maxt=0;for i=2](/uploads/image/z/4518083-11-3.jpg?t=%E6%88%91%E7%9A%84matlab%E7%A8%8B%E5%BA%8F%E5%A4%A7%E5%AE%B6%E7%BB%99%E6%8C%87%E7%82%B9%E4%B8%8B%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B%2C%E8%BF%90%E8%A1%8C%E4%B8%8D%E5%87%BA%E6%9D%A5%3Flx%3D50%3Bly%3D25%3Bv1%3Dzeros%28ly%2Clx%29%3Bfor+i%3D2%3A49v1%28i%2C25%29%3D1%3Bv1%28i%2C0%29%3Dsin%28%28i%2Api%29%2F50%29%2B5%2A%2810%5E-2%29.%2A%28i%2Api%2F50%29.%2A%284-%28i%2Api%2F50%29%29-0.1249.%2Av1%28i%2C25%29%3Bendv2%3Dv1%3Bmaxt%3D1%3Bt%3D0%3Bk%3D0%3Bwhile%28maxt%3E1e-6%29k%3Dk%2B1%3Bmaxt%3D0%3Bfor+i%3D2)
我的matlab程序大家给指点下怎么回事,运行不出来?lx=50;ly=25;v1=zeros(ly,lx);for i=2:49v1(i,25)=1;v1(i,0)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);endv2=v1;maxt=1;t=0;k=0;while(maxt>1e-6)k=k+1;maxt=0;for i=2
我的matlab程序大家给指点下怎么回事,运行不出来?
lx=50;ly=25;
v1=zeros(ly,lx);
for i=2:49
v1(i,25)=1;
v1(i,0)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);
end
v2=v1;
maxt=1;t=0;
k=0;
while(maxt>1e-6)
k=k+1;
maxt=0;
for i=2:49
for j=2:24;
v1(i,0)=(v1(i,1)+2v1(i,2)-v1(i,3))/2;
v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;
t=abs(v2(i,j)-v1(i,j));
if(t>maxt)
maxt=t;
end
end
end
v1=v2;
end
subplot(1,2,1),mesh(v1)
axis([0,50,0,25,0,100])
subplot(1,2,2),plot(v1)
这是我改过的程序 ,麻烦您再帮我看看!
v1=zeros(ly,lx);
for i=2:48
v1(i,25)=(sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-(v1(i,1)+2.*v1(i,2)-v1(i,3))./2)./0.1249;
%v1(i,1)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);
end
v2=v1;
maxt=1;t=0;
k=0;
while(maxt>1e-6)
k=k+1;
maxt=0;
for i=2:48
for j=2:23;
% v1(i,0)=(v1(i,1)+2*v1(i,2)-v1(i,3))/2;
v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;
t=abs(v2(i,j)-v1(i,j));
if(t>maxt)
maxt=t;
end
end
end
v1=v2;
end
%x=0:pi/50:pi;
%y=0:pi/50:pi/2;
subplot(1,2,1),mesh(v1)
axis([0,pi,0,pi/2,0,10])
subplot(1,2,2),plot(v1)
我的matlab程序大家给指点下怎么回事,运行不出来?lx=50;ly=25;v1=zeros(ly,lx);for i=2:49v1(i,25)=1;v1(i,0)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);endv2=v1;maxt=1;t=0;k=0;while(maxt>1e-6)k=k+1;maxt=0;for i=2
你好,问题太多了,大概看了一下,你先改
v1(i,0)=sin((i*pi)/50)+5*(10^-2).*(i*pi/50).*(4-(i*pi/50))-0.1249.*v1(i,25);
这行有问题,矩阵下标不允许有0,就是v1(i,0)
v1(i,0)=(v1(i,1)+2v1(i,2)-v1(i,3))/2;
这行也有问题,有中文括号,也有矩阵下标的问题,2v1(i,2)少个*号
v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;
这行下标超标
你先改这几个地方,后面再说
--------------------------------------------主要问题在一开始:
lx=50;ly=25;
v1=zeros(ly,lx);------就是这里
v1是25*50的,你却用for i=2:48
行标号超标了,改一点就行了,只是不知道最后的图是不是你想要的:
clear all;clc;
lx=50;
ly=25;
v1=zeros(lx,ly);
for ii=2:48
v1(ii,25)=(sin((ii*pi)/50)+5*(10^-2)*(ii*pi/50)*(4-(ii*pi/50))-(v1(ii,1)+2*v1(ii,2)-v1(ii,3))./2)/0.1249;
% 这里是要给v1的第25列赋值吗?
end
v2=v1;
maxt=1;
t=0;
k=0;
while maxt>1e-6
k=k+1;
maxt=0;
for i=2:48
for j=2:23;
v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;
t=abs(v2(i,j)-v1(i,j));
if t>maxt
maxt=t;
end
end
end
v1=v2;
end
subplot(1,2,1);
mesh(v1);
axis([0,pi,0,pi/2,0,10]);
subplot(1,2,2);
plot(v1);