⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap1_9_1.m

📁 利用MATLAB解决偏微分方程中的一些问题,如插值求解
💻 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 + -