博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的数值运算程序
阅读量:6689 次
发布时间:2019-06-25

本文共 1370 字,大约阅读时间需要 4 分钟。

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

功能:
用拉格朗日插值公式,对给定的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
            n 
——  
整型量,给定插值结点的个数;
            x 
——  
实型量,插值点。
输出参数:  *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
,如需转载请自行联系原作者
你可能感兴趣的文章
Linux 下内网流量控制工具
查看>>
KVM基本功能管理与使用
查看>>
胖AP与瘦AP的区别以及胖瘦AP组网的优劣对比
查看>>
复习sed的相关内容
查看>>
NetScaler OTP双因子身份认证登录演示
查看>>
centos系统目录结构
查看>>
python Class:面向对象高级编程 __getattr__
查看>>
思科dhcp配置思路
查看>>
“中国制造2025”+云计算,制造业转型的新可能
查看>>
JavaScript基础(一)
查看>>
python爬取QQ说说并生成词云图,回忆满满
查看>>
psutil
查看>>
如何过滤出已知当前目录下oldboy中的所有一级目录
查看>>
判断语句介绍
查看>>
2019智能家居展览会-资讯智能家居博览会
查看>>
阿里的Spring框架面试题到底有多难?这五大问题你又掌握了多少!
查看>>
搭建简单的云waf
查看>>
LVM逻辑卷小结
查看>>
浅淡个人学习嵌入式Linux过程
查看>>
linux学习第十二周总结
查看>>