数值分析北航第八题第三次计算实习任务(附百度云源码java版)

本文详细解析了数学算法的实现过程,从理解题意到算法选择,再到具体步骤的实施,包括牛顿迭代法、分片双二次插值法及最小二乘法曲面拟合法。通过实例演示了如何解决特定的数学问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先上干货 ,包含word报告与源码。

链接:https://pan.baidu.com/s/1piPSQIqsBcLH_pHAYog5tw
提取码:55jo

稍加说明,这是java版的源码以及上交作业的完整文档,如果你胆子大,可以直接将其作为作业上交,后果自负。云盘文件如上

 

首先,理清一下思路,相信还是有不少人跟我一样看见题目的第一眼并不理解什么意思,别说用什么算法了,连思路都没有:

题目给出x=0.08i,y=0.5+0.05j,0≤x≤0.8,0.5≤y≤1.5,所以(x,y)有11×21种组合,直接求出来。

第一步,求出11×21组x,y后,将x,y带入方程组中,于是方程组就变成了4元4个方程组,可以求得对应的t,u,w,v。(这里解方程组解的是非线性方程组,一般用牛顿迭代法,且每组x,y解一次方程组,一共解11×21次)也就是说,可以得出一个数表有11×21条数据(x,y,t,u,w,v)

第二步,题目中给出的数表是z,u,t的数表,而要求得是z,x,y相关的数据,需要利用第一步11×21的x,y,t,u对应关系。首先,利用题目中二维数表求得z=g(u,t),这个g(u,t)是t,u的双二次表达式,这里利用分片双二次插值求出z与u,t的函数关系,再利用第一步中11×21的数据关系,求出当x=0.08i,y=0.5+0.05j时z的数值,即求得11×21组的x,y,f(x,y)数据对应关系。

第三步,利用第二步得到的11×21组x,y,f(x,y)关系,最小二乘法曲面拟合法对其进行拟合,曲面拟合时随着k值得增加,拟合的精度增加,直到达到题目中要求精度,求得此时的系数矩阵,即得出p(x,y)

第四步,求f(x*,y*)和p(x*,y*),这里已不涉及新算法,直接将x*,y*代入方程组求得u,t,根据z=g(u,t)求得对应z,即f(x*,y*),实际上同第二步一样,只是x,y变化了。p(x*,y*)直接根据第三步计算的参数进行计算。

 

书上和百度云的word报告都有具体算法,不再赘述,简单说几个有意思的点吧:

1.牛顿迭代法需要求导,学的时候并没有细想,觉得这个太复杂了,求导每次都不一样,但实际上方程未变,导数形式未变,只是参数变了,是具有通用性的。如sinx求导cosx,x在迭代中或者不同参数计算时,是改变的,但是主体的cos是恒定的,具有通用性的。

2.分片双二次插值法:题目要求二次插值即可,但给出了6×6的数表,这个6×6的数表足以生成5次插值,所以采取分片,分片算法写得有点复杂,但实际非常简单,双二次插值只需3×3的数表,所以分片时即把最近似贴近的3×3。比如t的取值有0,0.2,0.4,0.6,0.8,1.0,如当t=0.3时,就取0,0.2,0.4这三排的其中数据。

3.曲面拟合:计算矩阵时要合理变通。曲面拟合要计算如下矩阵C

为了简化计算和编程、避免矩阵求逆:

变形得到如下:

这样就变成了求线性方程组,当A是一个矩阵而不是向量,矩阵视为多个向量组成,多次调用列主元guass消去解方程组即可。

 

凡是开源后果自负 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值