施密特法求解抛物线方程

function varargout=liu(varargin)
%测试问题 来自文献 孙志忠 偏微分数值解法
C=1;a1=0;a2=1;b1=0;b2=1;h1=1/20;h2=1/800;
fx=inline('exp(x)');
gy1=inline('exp(y)');
gy2=inline('exp(1+y)');
[X,Y,U]=Heatflow(fx,gy1,gy2,a1,a2,b1,b2,C,h1,h2);
mesh(X,Y,U);
shading flat;
xlabel('X','FontSize',14);
ylabel('Y','FontSize',14);
zlabel('error','FontSize',14);
title('误差图');
function [X,Y,U]=Heatflow(fx,gy1,gy2,a1,a2,b1,b2,C,h1,h2)
%求解热传导问题:
%CU_y=U_xx
%y(x,b1)=f(x)
%U(a1,y)=g1(y)
%U(a2,y)=g2(y)
%(x,y) in [a1,a2]*[b1,b2]
%m离散x方向的区间个数
%n离散y方向的区间个数
%参考算法:并行算法导论 C.Xavier S.S.lyengar著 张云泉 陈英 译
x=a1:h1:a2;
y=b1:h2:b2;
m=length(x)-1;
n=length(y)-1;
h=(a2-a1)/m;
k=(b2-b1)/n;
r=C*k/h^2;
[X,Y]=meshgrid(x,y);
Z=X;
U=zeros(n+1,m+1);
for i=1:m+1
Z(1,i)=feval(fx,x(i));
end
for i=1:n
Z(i,1)=feval(gy1,y(i));
Z(i,m+1)=feval(gy2,y(i));
end
for i=2:n+1
    for j=2:m
        Z(i,j)=(1-2*r)*Z(i-1,j)+r*(Z(i-1,j-1)+Z(i-1,j+1));
        U(i,j)=abs(Z(i,j)-f(x(j),y(i)));
    end
end
function z=f(x,y)
%精确解函数
z=exp(x+y);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值