1、* Qiu Jun 2007-06-07* Revision History:* Qiu Jun 2007-06-07 Initiated Version*/* ANSI C Source Code* File Name:* 4_38.c* 习题 4 第 38 题(上机题):求解第一型三次样条插值函数* Include Files#include math.h* Constants and Define Declarations#define max_dimension 20 / 允许的三对角矩阵最大维数* Global Object Definitionint n; / 插值节点个数floa
2、t dfx0; / 前端点一阶导数值float dfxn; / 后端点一阶导数值static float xmax_dimension; / 插值节点static float fxmax_dimension; / 插值节点函数值static float dq1max_dimension; / 插值节点一阶差商值static float dq2max_dimension; / 插值节点二阶差商值static float hmax_dimension; / 插值节点间距static float umax_dimension; / 三对角矩阵下副对角线元素static float bmax_dime
3、nsion; / 三对角矩阵主对角线元素static float vmax_dimension; / 三对角矩阵上副对角线元素static float dmax_dimension; / 三对角矩阵常数项元素static float Mmax_dimension; / 三对角矩阵未知项元素(插值节点二阶导数值)* Function Definition* Function Name:* data_input* Description:* 数据输入* Input:* Output:* Function Reference:* Qiu Jun 2007-06-07 Createdvoid data
4、_input(file_input,file_output)FILE *file_input;FILE *file_output;int i;/* 由终端输入数据 */* printf(Please Input :);printf(*nData Amount : scanf(%d,&n);Data x :for (i=0; in+1; i+) scanf(%fxi);Data fx :fxi);Boundary Condition :%f %fdfx0,&dfxn);*nn/* 由文件输入数据 */fscanf(file_input, fscanf(file_input,dfx0);/* 输出
5、数据至终端 */Data input is :nn*nx printf(%.3f ,xi);nfx ,fxi);n*nn/* 输出数据至文件 */fprintf(file_output,*n fprintf(file_output,n*nn* parameter_calculation* 参数计算void parameter_calculation(void) bi=2; if (i!=n) hi=xi+1-xi; dq1i=(fxi+1-fxi)/(xi+1-xi); =0 & i! dq2i-1=(dq1i-dq1i-1)/(xi+1-xi-1); ui=hi-1/(hi-1+hi); vi=1-ui; di=6*dq2i-1;v0=1;un=1;d0=6*(dq10-dfx0)/(x1-x0);dn=6*(dfxn-dq1n-1)/(xn-xn-1);*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1