实 验 报 告
课程名称 数值分析
实验项目 数值积分
专业班级 机械工程 姓 名 学 号
指导教师 成 绩 日 期 月 日
实验目
1理解计算机数值方法计算定积分似值
2学会复合梯形复合Simpson龙贝格求积分公式编程应
3探索二重积分矩形区域数值积分方法
二实验求
(1) 题目求完成实验容
(2) 写出相应Matlab 程序
(3) 出实验结果(表格展示实验结果)
(4) 分析讨实验结果提出优化实验
(5) 写出实验报告
三实验步骤
1数值方法计算积分
(1)取步长分复合梯形复合辛普森求积计算积分出误差中关函数积分精确值较两公式精度
(2)龙贝格求积计算完成问题(1)
2出种求矩形区域二重积分复化求积方法然计算二重积分
中积分区域
1
Int_tm 复化梯形:
function F Int_t(x1x2n)
复化梯形求积公式
x1x2 积分起点中点
分n区间没选步长防止区间数非整数
样点矩阵函数值:
x linspace(x1x2n+1)
y f(x)
m length(x)
题中Matlab计算端点位置函数值NaN化零:
y(1) 0
y(m) 0
算出区间长度步长h:
h (x2 x1)n
a [1 2*ones(1m2) 1]
计算估计积分值:
F h2*sum(a*y)
fm
function y f(x)
y sqrt(x)*log(x)
run11m
clcclear
分10区间步长01积分值:
F Int_t(0110)
F10 F
分100区间
F Int_t(01100)
F100 F
误差计算
W10 abs((49)F10)
W100 abs((49)F100)
W [W10 W100]
复化辛普森:
Int_sm
function F Int_s(x1x2n)
复化梯形求积公式
x1x2 区间分n区间
样点矩阵函数值:
x linspace(x1x2n+1)
y f(x)
m length(x)
h (x2 x1)n
y(1)0
y(m)0
题中Matlab计算端点位置函数值NaN化零:
F1sum(y)
xo x + h2
xo(m) []
y f(xo)
F2 sum(y)
F (h6)*(2*F1 + 4*F2)
run112m
clcclear
分10区间步长01积分值:
F Int_s(0110)
S10 F
分100区间
F Int_s(01100)
S100 F
误差计算
W10 abs((49)S10)
明显出精度高复化梯形
W100 abs((49)S100)
W [W10 W100]
run113m 拟合误差步长间三次曲线关系
clcclear
建立梯形误差辛普森误差步长矩阵:
Tzeros(110)
Szeros(110)
hzeros(110)
for i110
F Int_t(0110*i)
T(i) 49 F
F Int_s(0110*i)
S(i) 49 F
h(i) 1(10*i)
end
明显出辛普森误差曲线项系数较
TP polyfit(hT3)
SP polyfit(hS3)
龙贝格:
Rombergm:
function FRomberg(x1x2n)
建立龙贝格推算矩阵求初步长:
R zeros(4)
h (x2x1)n
x linspace(x1x2n+1)
计算矩阵第列:复化梯形结果:
for i14
F Int_t(x1x2n*i)
R(i1) F
end
计算第二列:辛普森
for i 13
R(i2) (43)*R(i+11)(13)*R(i1)
end
计算第三列:复化斯科特
for i 12
R(i3) (1615)*R(i+12)(115)*R(i2)
end
R(14) (6463)*R(23)(163)*R(13)
F R(14)
run12m
clcclear
F Romberg(0110)
F10 F
F Romberg(01100)
F100 F
[F10F10049F1049F100]
右图初始划分10区间100区间进行运算结果出初始10次划分精度辛普森梯形结果高出少
2
选类似复化梯形求积方法正方形积分区域划分n*n块中1(x(k)y(k))2(x(k+1)y(k))3(x(k)y(k+1))4(x(k+1)y(k+1))区间dsdxdy已知存ef(e)ds该函数区域数值处选(f(1)f(2)f(3)f(4))4值似知着n增会越越逼真实值程序:
qes2m 积分函数:
function fqes2(xy)
f exp(x*y)
Int_xym 积分代码:
function F Int_xy(x1x2y1y2n)
仅适合题目正方形区域二重积分
x1x2y1y2分横坐标坐标起点中点
n划分n*n正方形网格
建立网格交点处横坐标坐标:
x linspace(x1x2n+1)
y linspace(y1y2n+1)
计算方格面积dxdy:
ds (x2x1)*(y2y1)(n^2)
建立矩阵存放方块积分值:
Z zeros(n)
初始化积分值:
F 0
方块积分值存入矩阵Z中第行第列存放左角方格数类推:
次方格区域积分值累加终积分值
for i 1n
for j 1n
f qes2(x(i)y(j))
f1 f
f qes2(x(i+1)y(j))
f2 f
f qes2(x(i)y(j+1))
f3 f
f qes2(x(i+1)y(j+1))
f4 f
Z(ij) (ds * (f1+f2+f3+f4))4
F F + Z(ij)
end
end
run2m 运行代码:
clcclear
F Int_xy(01012)
划分4格
F2 F
F Int_xy(010110)
划分100格
F10 F
F Int_xy(0101100)
划分10000格:
F100 F
[F2F10F100]
积分值右图见逐渐精确:
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档