数学建模社区-数学中国

标题: 求助:关于分块矩阵的还原,为什么实行不了 [打印本页]

作者: 舒米牛牛    时间: 2009-12-17 20:17
标题: 求助:关于分块矩阵的还原,为什么实行不了
%运用Jacobi迭代拟合出来的u关于x和y的矩阵
! T4 {6 j  x5 K8 `function J=jac(A,b,u0,eps)
" D6 ^4 u1 q( Q) ~+ Z" l( N/ k3 zif nargin==3$ q( ?+ e/ d+ _
    eps=1.0e-8
+ M4 G1 d6 J: L0 j5 f9 ^, D1 k% aelseif nargin<3. o6 d- o  f) s' Y
    'error'
: A/ v' j( K9 G    return
2 m! ]4 ?' R: }: g0 uend/ F( U' R( h3 ~+ z, I
, m" `7 G0 L. m" n# t5 b" i2 r5 Z
%定义内部节点矩阵u0
5 E5 s- Z1 D- p! |9 _7 Jh=1;k=1;
, h2 Y9 o5 P6 F1 ^x=0:h:17;y=0:k:10;0 k& W1 M- Q/ p4 |: U
e=length(x)-2;f=length(y)-2;* U0 \: J2 r# m
u=zeros(e,f);' R  P- m% u; U
u0=u;
9 i& n' P/ `3 k0 Y5 q3 V, G: X' P8 y/ ~
%定义外部节点p, M  X8 c& T$ |
p=zeros(e+2,e+2);1 v- u% ?+ g( _' K
p(1,1:f+2)=0;p(e+2,1:f+2)=0;      
7 l& K% i3 c" S  pp(1:e+2,1)=100;p(1:e+2,f+2)=100;" Y- F9 z' W# n1 b

4 O7 j; Z8 s  Q( E1 K* s1 t# j%定义系数矩阵A
: Z; l+ I. a) q. oA=zeros(e*f,e*f);# r8 j  ^5 Y7 E+ i8 K7 d. _
B=mat2cell(A,ones(e*f/e,1)*e,ones(e*f/e,1)*e);
' O7 U6 p6 C, z" vd1=ones(e,1);d2=ones(e-1,1);- r! E2 {. L% t8 v/ M" I% K
M=4*diag(d1)-diag(d2,1)-diag(d2,-1);' g, ^3 S2 r3 V" O9 n  N9 ?# l9 V4 T
N=-eye(e);9 I' ], [: r/ ^4 z# ?" H0 I
B{1,1}=M;B{e,e}=M
7 z: ^; I  W. n7 Kfor i=2:e-1
/ p& J" u' P1 H+ X    B{i,i}=M;B{i-1,i}=N;B{i+1,i}=N
6 X7 c( b$ `  ^3 D4 S8 _" `, c$ W' X8 Bend2 ~7 l5 t$ F% K* j' M
A=cell2mat(B);  2 p. h6 z$ I/ X; K
这里总是显示
1 Z1 r! V  r, B; ~- ~; V! S4 A& j??? function J=jac(A,b,u0,eps)5 P( d/ O& ]# ]" [
    |$ r+ D+ q3 e& l0 n& V
Error: Function definitions are not permitted at the prompt or in scripts.
& S: Y) o, y  ?+ `9 ]" l8 i
% v5 F& s+ C1 L. e1 W
%定义b) U+ c. |1 i9 w3 ~. M) u$ d
b=ones(e*f,1);
( W7 v& s) L" i& T0 j1 m& wfor i=1:e, _, A6 J- ~; J* M
    for j=1:f
- G4 e/ I/ d* y# r) G; `9 ]1 d; J5 `        b(i+j)=p(i,j+1)+p(i+1,j)+p(i+2,j+1)+p(i+1,j+2)/ n1 ?0 J# V: E
    end
( a) B' ?9 f" D. j  I0 p: E- iend
' n) r9 t: s$ {$ ]% ~%运用Jacobi迭代法计算
) E) q! |" _! N4 O3 m9 a+ h  C9 @D=diag(diag(A));9 Y, B4 c: |) W# d
D=inv(D);
) E' S6 ]9 d4 @+ fL=tril(A,-1);) ]) t! |1 l+ K. G7 I7 Y( Q; O
U=triu(A,1);
% U( ^' f, e, O) eB=-D*(L+U);
, _7 ]; W: }1 }& E* ^f=D*b;$ H- I3 L; B! Q  i( G
J=B*u0+f;
: L- h, S* G: I! p- t/ i% Ywhile norm(J-u0)>=eps0 [5 g6 H# o7 T
x0=J;
, U* s  c- v& I8 eJ=B*u0+f;
& x* v  y1 |& C0 h' t* Xend
1 G& ^* W) F) W% g' Zreturn
作者: 舒米牛牛    时间: 2009-12-17 20:18
自己顶一下,拜托哪位高手指点一下,纠结这个矩阵的还原,想了好多方法还是不行~~实在想不出哪里出错了
作者: BenCam    时间: 2009-12-17 21:06
对不起,我也不知道,帮不了忙!
作者: madio    时间: 2009-12-17 22:38
你是不是函数的定义没有放在M文件中?




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5