一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)

精确解为:U(x,t)=e^(x+t);

用紧差分格式:

此种方法精度为o(h1^2+h2^4),无条件差分稳定;

一:用追赶法解线性方程组(还可以用迭代法解)

Matlab程序为:

function [u p e x t]=JCHGS(h1,h2,m,n)

%紧差分格式解一维抛物线型偏微分方程

%此程序用的是追赶法解线性方程组

%h1为空间步长,h2为时间步长

%m,n分别为空间,时间网格数

%p为精确解,u为数值解,e为误差

x=(0:m)*h1+0; x0=(0:m)*h1;%定义x0,t0是为了f(x,t)~=0的情况%

t=(0:n)*h2+0; t0=(0:n)*h2+1/2*h2;

syms f;

for(i=1:n+1)

for(j=1:m+1)

f(i,j)=0; %f(i,j)=f(x0(j),t0(i))==0%

end

end

for(i=1:n+1)

u(i,1)=exp(t(i));

u(i,m+1)=exp(1+t(i));

end

for(i=1:m+1)

u(1,i)=exp(x(i));

end

r=h2/(h1*h1);

for(i=1:n) %外循环,先固定每一时间层,每一时间层上解一线性方程组%

a(1)=0;b(1)=5/6+r;c(1)=1/12-r/2;d(1)=(r/2-1/12)*u(i+1,1)+... (1/12+r/2)*u(i,1)+(5/6-r)*u(i,2)+(1/12+r/2)*u(i,3)+...

h2/12*(f(i,1)+10*f(i,2)+f(i,3));

for(k=2:m-2)

a(k)=1/12-r/2;b(k)=5/6+r;c(k)=1/12-r/2;d(k)=h2/12*(f(i,k)+...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值