📄 sor.m
字号:
function ysor=sor(ef)
n=100;
h=1/n;
a=0.5;
ysor=zeros(1,n+1);
ysor(n+1)=1;
%用试算法求最佳松弛因子
w=1.1;
error1=99;
for j=1:3
for m=1:10
for k=1:3
error=0;
for i=2:n
yy=ysor(i);
ysor(i)=(-a*h^2/(2*ef+h)+(ef+h)*ysor(i+1)/(2*ef+h)+ef*ysor(i-1)/(2*ef+h))*w+yy*(1-w);
error=error+abs(yy-ysor(i));
end
end
if error<=error1
error1=error;
wopt=w;
end
w=w+0.1^j;
end
w=wopt-0.5*(0.1^j);
end
fprintf('最佳松弛因子:%f', wopt);
for k=1:1000
error=0;
for i=2:n
yy=ysor(i);
ysor(i)=(-a*h^2/(2*ef+h)+(ef+h)*ysor(i+1)/(2*ef+h)+ef*ysor(i-1)/(2*ef+h))*wopt+yy*(1-wopt);
error=error+abs(yy-ysor(i));
end
if error/(n-1)<0.0001,break;end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -