计算实习大作业三
一、算法设计方案:
1.使用牛顿迭代法(简单迭代法不收敛),对原题中给出的
ix
i
08.0�
,
jy
j
05.05.0 ��
,
(
200,100 ���� ji
)的 11*21 组
ji
yx ,
分别求出原题中方程组的一组解,于是得到一
组和
ii
yx ,
对应的
ji
tu ,
。
2.对于已求出的
ji
tu ,
,使用分片二次代数插值法对原题中关于
utz ,,
的数表进行插值得到
ij
z
。于是产生了 z=f(x,y)的 11*21 个数值解。
3.从 k=1 开始逐渐增大 k 的值,并使用最小二乘法曲面拟合法对 z=f(x,y)进行拟合,得
到每次的
�
,k
。当
7
10
�
�
�
时结束计算,输出拟合结果。
4.计算
)5,,2,1,8,,2,1)(,(),,(
****
�������� jiyxpyxf
jiji
的值并输出结果,以观察
),( yxp
逼
近
),( yxf
的效果。其中
jyix
ji
2.05.0,1.0
**
���
。
二、源代码:
/******************************************
* 计算实习大作业第三题源程序
* 本程序在 Dev-C++ 4.9.9.0 版本下调试通过
* 最后修改:2008.06.11
******************************************/
#define N 6 //矩阵的阶;
#define M 4 //方程组未知数个数;
#define EPSL 1.0e-12 //迭代的精度水平;
#define MAXDIGIT 1.0e-219
#define SIGSUM 1.0e-7
#define L 500 //迭代最大次数;
#define K 10 //最小二乘法拟合时的次数上限;
#define X_NUM 11
#define Y_NUM 21
#define OUTPUTMODE 1 //输出格式:0--输出至屏幕,1--输出至文件;
#include <stdio.h>
#include <math.h>