没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
x 0.99 0.95 0.87 0.77 0.67 0.56 0.44 0.30 0.16 0.01
y 0.39 0.32 0.27 0.22 0.18 0.15 0.13 0.12 0.13 0.15
x 0.93 0.85 0.73 0.59 0.42 0.29 0.16 0.05 -0.11 -0.20
y 0.40 0.41 0.42 0.43 0.42 0.41 0.40 0.36 0.32 0.22
计算方法上机实习二 实习报告
一、分析报告
1.问题分析
2.算法细节
(1)三次样条插值的实现
(2)最小二乘法的实现
(3)线性方程组的解法
3.编程思路
4.运行结果分析
(1)插值与拟合结果
(2)曲线图
二、编程流程图
三、源代码
Fortran主程序
Python绘图程序
四、运行结果
计算方法上机实习二 实习报告
2019级 大气科学学院 赵志宇
学号:191830227
一、分析报告
1.问题分析
给出平面上的20个点,要求:
a) 用三次样条插值构造出插值曲线;
b) 用最小二乘法构造出拟合曲线,拟合方程为 .
20个点的坐标如下:
首先绘制出(x, y)的散点图,观察散点在平面上的分布情况.
考虑到给出的散点围住了一块闭合区域,无法使用一个样条函数 进行插值,所以考虑使用参数方程的形式进行插
值.
设插值曲线的参数方程为
然后分别对 和 进行插值即可.
因为共有21个点(周期边界条件又加了一个点),所以使u的取值在1到21之间,插值节点可以简单地设 ,方便
计算.
记样条插值函数为 ,将它们联立即得到原问题的插值函数.
(2)最小二乘法的实现
将 看作特征变量, 看作目标变量,通过最小二乘法来计算
中的参数 .
由线性代数的相关知识可知,最小二乘解 满足方程
解方程组即可求得 .
(3)线性方程组的解法
使用高斯消元法解线性方程组.
对于线性方程组 ,构造增广矩阵 ,对矩阵 进行初等变换,将 化成行阶梯矩阵,通过回代求出x.
3.编程思路
程序主要分为5个模块,主程序jsff2,用来进行三次样条插值的子例程cubic_spline,用来进行线性回归的子例程
linear_regression,用来解线性方程组的子例程gauss_elimination,以及用来输出调试信息的子例程print_matrix.
用变量n代表点的个数,注意一共有20个点,故n取20,但是周期边界条件要求第一个元素和最后一个元素相等,所以
在数组末尾把第一个元素加进去,所以实际上一共有(n+1)个点,三次样条插值的增广矩阵的维数为(n+1)*(n+2).
用变量m表示特征的个数,一共有四个特征(xi, yi, xiyi, yi
2
),故m取4,但是为了让拟合出来的方程有截距,把1加入到
了特征当中,所以实际上有(m+1)个特征,A
T
A的维数为(m+1)*(m+1).
4.运行结果分析
(1)插值与拟合结果
所有分段插值函数如下, 代表区间 上的插值函数:
剩余14页未读,继续阅读
文润观书
- 粉丝: 22
- 资源: 318
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0