有限差分法matlab两点边值代码,两点边值问题的有限差分法汇总.doc

实验报告详细描述了使用有限差分法解决两点边值问题的过程,具体涉及一个初值问题的数值求解。在MATLAB环境下,编写了差分格式的程序,计算了不同网格点下的数值解,并与精确解对比,分析了误差和收敛性。实验结果表明,随着网格点增加,绝对误差减小,收敛阶保持稳定。
摘要由CSDN通过智能技术生成

学 生 实 验 报 告

实验课程名称 偏微分方程

开课实验室 数统学院

学 院 数统 年级 2013 专业班 信计2班

学 生 姓 名 学 号

开 课 时 间 2015 至 2016 学年第 2 学期

总 成 绩教师签名

数学与统计学院制

开课学院、实验室: 数统学院 2016年 月 日

实验项目

名 称两点边值问题的有限差分法实验项目类型验证演示综合设计其他指导教师 曾芳成 绩是一.实验目的

通过该实验,要求学生掌握问题法并能通过计算机语言编程实现。

考虑如下的初值问题:

1)

(2)

其中,,,,是给定常数。

将区间等分,设,网点。

1.在第三部分写出问题(1)和(2)的差分格式,并给出该格式的局部截断误差。

2.根据你写出的差分格式,编写一个有限差分法程序。将所写程序放到第四部分。

3.给定参数,,,,问题(1)的精确解,其中将及带入方程(1)可得。分别取,用所编写的程序计算问题(1)和(2)。将数值解记为,,网点处精确解记为,。然后计算相应的误差,及收敛阶,将计算结果填入第五部分的表格,并对表格中的结果进行解释?

4. 将数值解和精确解画图显示,每种网格上的解画在一张图。

三.实验原理、方法(算法)、步骤

差分格式:

=-1/h^2(-()+)+()/2h+=

A,

局部阶段误差:

(u)=O(h^2)

3.程序

clear all

N=10;

a=0;b=1;

p=@(x) 1;

r=@(x) 2;

q=@(x) 3;

alpha=0;beta=1;

f=@(x) (4*x^2-2)*exp(x-1);

h=(b-a)/N;

H=zeros(N-1,N-1);g=zeros(N-1,1); %

for i=1

H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);

H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));

g(i)=2*h*f(a+i*h)+(2*p(a+(i-1/2)*h)/h+r(a+i*h))*alpha;

end

for i=2:N-2

H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h));

H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);

H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));

g(i)=2*h*f(a+i*h);

end

for i=N-1

H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h));

H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);

g(i)=2*h*f(a+i*h)+(2*p(a+(i+1/2)*h)/h-r(a+i*h))*beta;

end

u=H\g;

u=[alpha;u;beta];

x=a:h:b;

y=(x.^2).*exp(x-1);

plot(x,u);

hold on

plot(x,y);

y=y'

z=y-u

四.实验环境(所用软件、硬件等)及实验数据文件

Matlab

五.实验结果及实例分析

N

收敛阶

收敛阶

10

0……

0……

20

01.9341

01.4530

40

02.0001

02.0000

80

01.9993

02.0000

160

02.0000

02.0000

N越大 只会使绝对误差变小,方法没变,所以收敛阶一致。

图示为:(绿线为解析解蓝线为计算解

N=10

N=20

N=40

N=80

N=160

教师签名

年 月 日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值