00001 clear all
00002 clc
00003 n=65;
00004
00005 global lambda
00006 global unk
00007 global re
00008
00009 lambda=0.1;
00010 re=1000;
00011 unk=2;
00012
00013 N=n*n*unk;
00014
00015
00016
00017
00018 maxNewton=10;
00019 tol=1e-5;
00020
00021 maxit=1000;
00022
00023
00024 % initial guess for the solution vector
00025 x=zeros(N,1);
00026
00027 f0=myF(x,n);
00028
00029 initial_norm=norm(f0)
00030
00031 jac=sparse(N,N);
00032
00033 for i=1:maxNewton
00034
00035 disp('Newton iter')
00036 i
00037
00038 %initialize the update vector
00039 delta=zeros(N,1);
00040
00041 Jac=myJac(x,n);
00042 tol=1e-2; %*norm(f0)
00043 % delta = gmres(@(v) mfmult(v,x,n),-f0,min(100,N),tol,min(1000,N));
00044
00045 %delta = gmres(Jac,-f0,min(100,N),tol,min(1000,N));
00046 delta = -Jac\f0;
00047
00048 x=x+delta;
00049
00050 f0=myF(x,n);
00051
00052 if (norm(f0)<=tol)
00053
00054 disp('Newton converged')
00055 break
00056 end
00057
00058 end
00059
00060 s=zeros(N/unk,1);
00061 v=zeros(N/unk,1);
00062
00063 for i=1:N/unk
00064 s(i)=x(2*i-1);
00065 v(i)=x(2*i);
00066 end
00067
00068
00069 S=reshape(s,n,n);
00070 subplot(1,2,1)
00071 contourf(S');
00072 V=reshape(v,n,n);
00073 subplot(1,2,2)
00074 contourf(V');
00075 %disp('maximum temperature:')
00076 % max(x)
00077
00078 %pause
00079
00080 disp('re=100 is solved')
00081
00082
00083 Fp=myFp(x,n);
00084 Jac=myJac(x,n);
00085
00086 delta=-Jac\Fp;
00087
00088 %delta(133:134)
00089
00090 reOld=re;
00091 re=1000;
00092
00093 x=x+delta*(re-reOld);
00094 x(133:134)
00095
00096
00097
00098 f0=myF(x,n);
00099
00100 initial_norm=norm(f0)
00101
00102 for i=1:maxNewton
00103
00104 disp('Newton iter')
00105 i
00106
00107 %initialize the update vector
00108 delta=zeros(N,1);
00109
00110 Jac=myJac(x,n);
00111 % delta = gmres(@(v) mfmult(v,x,n),-f0,min(100,N),tol,min(1000,N));
00112 tol=1e-2*norm(f0)
00113 delta = gmres(Jac,-f0,min(100,N),tol,min(1000,N));
00114 % delta = -Jac\f0;
00115
00116 x=x+delta;
00117
00118 f0=myF(x,n);
00119
00120 if (norm(f0)<=tol)
00121
00122 disp('Newton converged')
00123 break
00124 end
00125
00126 end
00127 figure
00128 s=zeros(N/unk,1);
00129 v=zeros(N/unk,1);
00130
00131 for i=1:N/unk
00132 s(i)=x(2*i-1);
00133 v(i)=x(2*i);
00134 end
00135
00136
00137 S=reshape(s,n,n);
00138 subplot(1,2,1)
00139 contourf(S');
00140 V=reshape(v,n,n);
00141 subplot(1,2,2)
00142 contourf(V');
00143 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00144 % clear all
00145 % clc
00146 % n=65;
00147 %
00148 % N=n*n;
00149 %
00150 % global lambda
00151 % lambda=0.1;
00152 %
00153 % maxNewton=10;
00154 % tol=1e-5;
00155 %
00156 % maxit=1000;
00157 %
00158 %
00159 % % initial guess for the solution vector
00160 % x=zeros(N,1);
00161 %
00162 % f0=myF(x,n);
00163 %
00164 % initial_norm=norm(f0)
00165 %
00166 % jac=sparse(N,N);
00167 %
00168 % for i=1:maxNewton
00169 %
00170 % disp('Newton iter')
00171 % i
00172 %
00173 % %initialize the update vector
00174 % delta=zeros(N,1);
00175 %
00176 % Jac=myJac(x,n);
00177 % % delta = gmres(@(v) mfmult(v,x,n),-f0,min(100,N),tol,min(1000,N));
00178 % delta = -Jac\f0;
00179 %
00180 % x=x+delta;
00181 %
00182 % f0=myF(x,n);
00183 %
00184 % if (norm(f0)<=tol)
00185 %
00186 % disp('Newton converged')
00187 % break
00188 % end
00189 %
00190 % end
00191 %
00192 % X=reshape(x,n,n);
00193 % surf(X');
00194 % disp('maximum temperature:')
00195 % max(x)
00196 %
00197 %
00198 % disp('0.1 is solved')
00199 %
00200 %
00201 % Fp=myFp(x,n);
00202 % Jac=myJac(x,n);
00203 %
00204 % delta=-Jac\Fp;
00205 %
00206 % delta(67)
00207 %
00208 % lambdaOld=lambda;
00209 % lambda=6.8;
00210 %
00211 % x=x+delta*(lambda-lambdaOld);
00212 % x(67)
00213 %
00214 %
00215 %
00216 % f0=myF(x,n);
00217 %
00218 % initial_norm=norm(f0)
00219 %
00220 % for i=1:maxNewton
00221 %
00222 % disp('Newton iter')
00223 % i
00224 %
00225 % %initialize the update vector
00226 % delta=zeros(N,1);
00227 %
00228 % Jac=myJac(x,n);
00229 % % delta = gmres(@(v) mfmult(v,x,n),-f0,min(100,N),tol,min(1000,N));
00230 % delta = -Jac\f0;
00231 %
00232 % x=x+delta;
00233 %
00234 % f0=myF(x,n);
00235 %
00236 % if (norm(f0)<=tol)
00237 %
00238 % disp('Newton converged')
00239 % break
00240 % end
00241 %
00242 % end
00243 %
00244 %
00245 %
00246 %