jaykangta 发表于 2007-12-10 17:05

请问u=zeros(m+1,n+1)这个语句的作用是什么

function My_Experiment_2()
clc;
clear;
b=1;
L=pi;
m=20;
n=1000;
dt=4e-4;
dx=L/m;
alpha=0.5;
d=(2*(1:n+1).^(1-alpha)-(2:n+2).^(1-alpha)-(0:n).^(1-alpha));
Nmax=100;   
tol=1e-6;   
u=zeros(m+1,n+1);
r=b^2*dt^alpha /(dx^2)*gamma(2-alpha);
c=(1:n+1).^(1-alpha)-(0:n).^(1-alpha);
u(1,1:(n+1))=0;
u(m+1,1:(n+1))=0;
u(2:m,1)=feval('myfun1',dx:dx:(m-1)*dx)';
u1=u;
for k=1:Nmax   
                     
    for j=3:(n+1)
      for i=2:m   
         u1(i,j)=(c(j)*u(i,1)+d(1:j-1)*u(i,j-1:-1:1)'+r*u(i+1,j)+r*u(i-1,j))/(1+2*r);
      end
    end
    if(round(k/10)==k/10)      
      fprintf('k=%4.2d\n',k);
    end
    if(max(abs(u1-u))/max(abs(u1))<tol)
      u=u1;fprintf('迭代次数为 :%4.1d',k);
      
      
       mesh(0:dt:n*dt,0:dx:m*dx,u);
       plot(0:dx:m*dx,u(:,end)');
      t=0.4;
       sum=1;
       for i=1:100
          sum=sum+(-1).^i*t^(i*alpha)/gamma(i*alpha+1);
       end
       q=sin(0:dx:m*dx).*sum;
       hold on;
       plot(0:dx:m*dx,q,'*');
       hold off;
      
       return;
    end
    u=u1;
end
u(5,5)

刚接触MATLAB,好多都不懂啊,请问
u=zeros(m+1,n+1); 这个语句的作用是什么?
改成u=ones(m+1,n+1); 为什么输出的值是不一样的

[ 本帖最后由 eight 于 2007-12-10 21:20 编辑 ]

花如月 发表于 2007-12-10 17:32

回复 #1 jaykangta 的帖子

0和1会相等么?麻烦看书或者help文档

再次发类似的帖子我就删,请楼主发帖之前看看置顶帖子

eight 发表于 2007-12-10 21:19

原帖由 jaykangta 于 2007-12-10 17:05 发表 http://www.chinavib.com/forum/images/common/back.gif
function My_Experiment_2()
clc;
clear;
b=1;
L=pi;
m=20;
n=1000;
dt=4e-4;
dx=L/m;
alpha=0.5;
d=(2*(1:n+1).^(1-alpha)-(2:n+2).^(1-alpha)-(0:n).^(1-alpha));
Nmax=100;   
tol=1e-6 ...

新手请找本基础书阅读一下

sigma665 发表于 2007-12-10 22:07

u=zeros(m+1,n+1)
赋值为0

[ 本帖最后由 eight 于 2007-12-11 13:21 编辑 ]

skylarkcrane 发表于 2007-12-10 22:19

原帖由 花如月 于 2007-12-10 17:32 发表 http://www.chinavib.com/forum/images/common/back.gif
0和1会相等么?麻烦看书或者help文档

再次发类似的帖子我就删,请楼主发帖之前看看置顶帖子

主任这么狠啊,人家新手觉得这个地方可以讨论才发的,并不是谁都像主任一样拥有这么高的学术水平~:@)

re-us 发表于 2007-12-11 10:18

讨论不要伤了和气嘛.:lol
其实这些东西可以自己试验一下的
比如
zeros(1,2)和ones(1,2)看看有什么不同

花如月 发表于 2007-12-11 10:34

回复 #5 skylarkcrane 的帖子

不是我狠,我们是很欢迎提出问题的版友。但是这样的问题正如楼上所说,完全是可以自己解决的。我也是初学者,哪有什么高水平呢,只是勤于思考和搜索而已。如果版面这样的主题很多,相信你不怎么愿意看到吧?以后对这样帖子我保留个人意见。大家都相互体谅下,都是为了学习和版面的发展!

楼上是知道的,他的一个帖子绕了好大的弯子。最后就只有一个简单的函数就解决了,另外很多版友是在搬用别人的程序。这点原本没什么,我们都是在学习中慢慢成长的,不过有一点一定要注意:研究别人的程序需要一定的基础,问题归问题,基础归基础。讨论版讨论的问题,而不是基础知识问答!只要是你确实经过思考而没解决的问题,一定会有很多版友愿意回答。

同时大家对版面建设,版主或者其他方面的一些意见可以在这里提:matlab版“不满意程度”调查专贴
只要你的意见合理,我们都会慎重考虑并有适当奖励

[ 本帖最后由 花如月 于 2007-12-11 10:40 编辑 ]

eight 发表于 2007-12-11 13:22

原帖由 花如月 于 2007-12-11 10:34 发表 http://www.chinavib.com/forum/images/common/back.gif
不是我狠,我们是很欢迎提出问题的版友。但是这样的问题正如楼上所说,完全是可以自己解决的。我也是初学者,哪有什么高水平呢,只是勤于思考和搜索而已。如果版面这样的主题很多,相信你不怎么愿意看到吧?以后 ...
恩,稍后会给出论坛的免责声明,大家必须先阅读有关规定,然后再发帖讨论,特别是新手。

skylarkcrane 发表于 2007-12-11 14:41

原帖由 花如月 于 2007-12-11 10:34 发表 http://www.chinavib.com/forum/images/common/back.gif
不是我狠,我们是很欢迎提出问题的版友。但是这样的问题正如楼上所说,完全是可以自己解决的。我也是初学者,哪有什么高水平呢,只是勤于思考和搜索而已。如果版面这样的主题很多,相信你不怎么愿意看到吧?以后 ...


其实说话可以换一种方式。
包括楼主,应该针对哪一个命令的使用进行提问,不应该把整个程序贴出来,这样浪费了时间,到后来反而是没有价值的问题。

现在向主任表达歉意,因为我当时说话也欠考虑。:@)

花如月 发表于 2007-12-11 14:48

回复 #9 skylarkcrane 的帖子

没关系的,还要多谢你的意见呢:handshake
页: [1]
查看完整版本: 请问u=zeros(m+1,n+1)这个语句的作用是什么