一个简单的数值运算程序

简介:


     对拉格朗日插值公式做的简单程序

功能:
用拉格朗日插值公式,对给定的n对离散数据进行差值计算。
 
算法简介:
对给定的 n 个插值结点 x1 x2 ,……, xn ,及其对应的函数值 y1=f x1 ), y2=f x2 ),……, yn=f xn );使用拉格朗日插值公式,计算在 x 点处的对应的函数值 f x );
                        
程序:
 
 double lagrange( double x0[],double y0[],double n,double x,double *y)
{
 
 int i, j;
 double p;
 *y=0;
 if ( n>1)
 {
  for ( i=0; i<n; i++)
  {
   p=1;
   for ( j=0; j<n; j++)
   {
    if ( i!= j )
     p= p*(x-x0[j]) / ( x0[i]-x0[j]);
   }
   *y = *y + p*y0[i];
   return (0);
  }
 }
 else
  return (-1);
 
}
 
使用说明:
1   参数说明
输入参数:  x0[ ]   ——   n 个元素的一维实数组,存放给定的插值结点 x1 x2 ,……, xn
           y0[ ]  ——  n 个元素的一维实数组,存放与插值结点相对应的函数值 y1 y2 ,……, yn
             ——   整型量,给定插值结点的个数;
             ——   实型量,插值点。
输出参数:  *y  ——   实型指针,接受调用程序传送的一个实型量的地址,在程序结束时,在该实型量返回计算结果。
注意:   该实型量中原有内容将被破坏。
2 )调用说明
调用的格式为:
             rtn = lagrange ( x0, y0, n, x, y)
其中 rtn 应为一个整型量。
本子程序是一个整型函数,因此在返回主程序一个整型代码于变量 rtn 中。代码的意义如下:
——   程序正常结束,在 y 中有计算结果。
-1  ——   程序异常返回,在 y 中没有结果。异常的原因是 n 不大于 1 ,使运算无法继续进行。
 
 
例题:
已知函数如下表所示,求 X = 0.472 处的函数值:
X
0.46
0.47
0.48
0.49
Y
0.484655
0.4903745
0.502750
0.511668
 
计算这个问题的程序如下:
#include "stdio.h"
#include <math.h>
 
void main()
{
 double x0[4]={0.46,0.47,0.48,0.49};
 double y0[4]={0.484655,0.493745,0.502750,0.511668};
 double x,y;
 double n,rtn;
 
 n=4;
 x=0.472;
 
 rtn=lagrange(x0,y0,n,x,&y);
 
 if (rtn==0)
 {
  printf("Y(0.472)=:%f\n",y);
 }
 else
 {
  printf("N must be larger than 1.\n");
 }
}
 
计算结果: Y 0.472 = -0.023263



     本文转自阿龙哥 51CTO博客,原文链接:http://blog.51cto.com/ililong/282613 ,如需转载请自行联系原作者








相关文章
|
1月前
|
JavaScript 前端开发 大数据
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
|
7月前
|
存储 数据处理
计算机数据的表示及运算
计算机数据的表示和运算是计算机系统中非常重要的概念。计算机使用二进制来表示和处理数据,其中包括整数、浮点数和字符等不同类型的数据。下面将详细介绍计算机数据的表示和运算。 1. 二进制表示:计算机使用二进制系统来表示数据。二进制系统由0和1两个数字组成,每一位称为一个比特(bit)。比特是计算机中最小的存储单位,可以表示一个二进制数值(0或1)。 2. 整数表示:计算机使用补码表示整数。补码是一种用于表示负数的方法,它将负数的最高位设为1,正数的最高位设为0。补码表示可以保证负数的运算结果仍然是有效的。 3. 浮点数表示:计算机使用浮点数表示实数。浮点数由两个部分组成:尾数和指数。尾数表示
114 0
|
11天前
|
SQL 关系型数据库 MySQL
7. 数值函数
7. 数值函数
|
7月前
|
存储 算法 数据处理
数据的表示及运算
一、数据的表示及运算 数据的表示和运算是计算机系统中非常重要的概念,它们决定了计算机如何处理和操作数据。 1. 数据的表示:计算机使用二进制(0和1)来表示和存储数据。二进制是一种只有两个状态的编码方式,可以通过开关电路的开和关来表示0和1。计算机将二进制编码与不同的数据类型关联,例如整数、浮点数、字符等。 2. 整数运算:计算机可以对整数进行基本的算术运算,包括加法、减法、乘法和除法。这些运算是通过电子电路中的逻辑门实现的,逻辑门可以对二进制数进行逻辑运算和移位操作。 3. 浮点数运算:计算机可以进行浮点数的运算,浮点数是一种用于表示带有小数部分的数值的数据类型。浮点数运算涉及到浮点数的表示
54 0
|
11月前
|
存储
浮点数在内存中的运算
这篇博客将给大家介绍浮点数在内存中是如何进行计算的
|
C语言
5.1.4_带符号整数的表示和运算_原反补
计算机组成原理之带符号整数的表示和运算_原反补
132 0
5.1.4_带符号整数的表示和运算_原反补
2.2.4加减运算和溢出判断
2.2.4加减运算和溢出判断
|
开发者 索引 Python
数值运算
快速学习数值运算
69 0
数值运算
|
开发者 索引 Python
数值运算|学习笔记
快速学习数值运算
68 0
【MATLAB】数值运算 ( 数值运算示例 | 三角函数 | 指数运算 | 对数运算 | 常用的数学公式对应函数 )
【MATLAB】数值运算 ( 数值运算示例 | 三角函数 | 指数运算 | 对数运算 | 常用的数学公式对应函数 )
178 0
【MATLAB】数值运算 ( 数值运算示例 | 三角函数 | 指数运算 | 对数运算 | 常用的数学公式对应函数 )