拉格朗日插值方法C语言编程
更新时间:2023-05-12 09:33:01 阅读量: 实用文档 文档下载
数值逼近课程的内容,用C语言实现的拉格朗日插值方法,可以随时增加一个点,也可以随时算出某个点的值,还可以算出插值多项式,功能很全
#include<stdio.h>
#include <stdlib.h>
#define M 20;
int n=0;
int p=1;
int num=0;
double *x;
double *y;
double Calculate(double tt) ;
void Insert(int m);
void Print( );
void NewTon(int m)
{
double tt;
Insert(m);
Print( );
printf("是否继续进行插值、计算还是结束?继续插值请输入1,结束请输入0,求值计算请输入2;p=");
scanf("%d",&p);
printf("\n");
while(p!=0)
{
if(p==1)
{
printf("请输入再次插值点个数num=");
scanf("%d",&num);
NewTon(num);
}
else if(p==2)
{
printf("请输入x=");
scanf("%lf",&tt);
tt=Calculate(tt);
printf("Q(x)=%lf",tt);
printf("\n");
printf("是否继续进行插值、计算还是结束?继续插值请输入1,结束请输入0,求值计算请输入2;p=");
scanf("%d",&p);
printf("\n");
}
else break;
}
}
void Print( )
{
int k,j;
printf("插值多项式为:Q(x)=%lf",y[0]);
for(j=1;j<n;j++)
{
if(y[j]>=0) printf("+");
printf("%lf",y[j]);
for(k=0;k<j;k++)printf("*(x-%lf)",x[k]);
}
printf("\n");
}
void Insert(int m)
{
int j,k,t,N;N=n;
n+=m;
double *x1;
数值逼近课程的内容,用C语言实现的拉格朗日插值方法,可以随时增加一个点,也可以随时算出某个点的值,还可以算出插值多项式,功能很全
double *y1;
x1=(double*)malloc(n*sizeof(double));
y1=(double*)malloc(n*sizeof(double));
for(j=0;j<N;j++)
{
x1[j]=x[j];
y1[j]=y[j];
}
for(j=0;j<m;j++)
{
printf("请输入第%d个插值点x[%d]=",j+1,N+j); scanf("%lf",&x1[N+j]);
printf("请输入第%d个插值点y[%d]=",j+1,N+j); scanf("%lf",&y1[N+j]);
}
x=x1;
y=y1;
printf("\n");
if(N>1)
for(j=0;j<m;j++)
{
double ss=1;
for(k=0;k<N+j;k++)
ss*=x[N+j]-x[k];
for(k=0;k<N+j;k++)
{
double rr=y[k];
for(t=0;t<k;t++)
rr*=x[N+j]-x[t];
y[N+j]-=rr;
}
y[N+j]/=ss;
}
else
for(j=1;j<m;j++)
{
double ss=1;
for(k=0;k<N+j;k++)
ss*=x[N+j]-x[k];
for(k=0;k<N+j;k++)
{
double rr=y[k];
for(t=0;t<k;t++)
rr*=x[N+j]-x[t];
y[N+j]-=rr;
}
y[N+j]/=ss;
}
}
double Calculate(double tt)
{
int i,j;
double yy=0;
double xx;for(i=0;i<n;i++)
{
xx=y[i];
for(j=0;j<i;j++)
{
xx=xx*(tt-x[j]);
}
yy+=xx;
}
数值逼近课程的内容,用C语言实现的拉格朗日插值方法,可以随时增加一个点,也可以随时算出某个点的值,还可以算出插值多项式,功能很全
return yy;
}
void main()
{
printf("请输入插值点个数num="); scanf("%d",&num);
NewTon(num);
printf("结束");
}
正在阅读:
拉格朗日插值方法C语言编程05-12
2015年湖南省公务员考试3月4日行测天天练模拟题06-11
新公务员考察材料(完整版)09-12
《公共组织财务管理》课后练习题 第4章 行政单位收入和支出管理05-22
喀什市第一中学“网格化”社会面巡逻防控体系工作实施方案05-23
特大桥主桥墩身(翻模)施工方案06-17
实验室先进个人事迹材料08-18
常用准入认证技术原理分析精编版 - 图文03-04
行政单位国有资产管理暂行办法一04-03
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 拉格
- 朗日
- 插值
- 语言编程
- 方法