📄 chap1_9_1.m
字号:
%用差分格式(1.43-1)和(1.43-2)计算两点边值问题的程序
function[Y,E,e]=chap1_9_1(m,Z)%m为等分的分数,Z为欲知该点函数值的点集,Y为对应的函数值.E为对应的误差绝对值,e为最大误差.
for i=2:m
X(1,i)=(i-1)/m;
B(1,i)=2+(1/m)^2*(1+sin(X(1,i)));
D(1,i)=(1/m)^2*(exp(X(1,i))*sin(X(1,i)));
A(1,i)=-1;
R(1,i)=-1;
end
X(1,1)=0; X(1,m+1)=1;
A(1,m+1)=-1; R(1,1)=-1;
B(1,1)=1+1/m; B(1,m+1)=1+2/m;
D(1,1)=0; D(1,m+1)=3*exp(1)*1/m;
G(1,1)=D(1,1)/B(1,1);
W(1,1)=R(1,1)/B(1,1);
for i=2:m
G(1,i)=(D(1,i)-A(1,i)*G(1,i-1))/(B(1,i)-A(1,i)*W(1,i-1));
W(1,i)=R(1,i)/(B(1,i)-A(1,i)*W(1,i-1));
end
G(1,m+1)=(D(1,m+1)-A(1,m+1)*G(1,m))/(B(1,m+1)-A(1,m+1)*W(1,m));
U(1,m+1)=G(1,m+1);
for i=m:-1:1
U(1,i)=G(1,i)-W(1,i)*U(1,i+1);
end
U(1,1)=1; U(1,m+1)=exp(1);
for i=1:length(Z)
k=1;
while(Z(1,i)>X(1,k))
k=k+1;
end
Y(1,i)=U(1,k-1)+((U(1,k)-U(1,k-1))/(X(1,k)-X(1,k-1)))*(Z(1,i)-X(1,k-1));
end%利用线形函数性质求给定点处的函数值.
for i=1:length(Z)
E(1,i)=abs(Y(1,i)-exp(Z(1,i)));
end
for i=1:m+1
E1(1,i)=abs(U(1,i)-exp(X(1,i)));
end
e=max(E1);
plot(X,U);hold on;
plot(X,E1,'r');
q=0:0.01:1;
p=exp(q);
plot(q,p,'r-');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -