通过最小二乘法实现曲线拟合(C语言版) - 布谷鸟的日志 - 网易博
最小二乘法c语言算法
通过最小二乘法实现曲线拟合(C语言版) - 布谷鸟的日志 - 网易博客网易 新闻
微博
邮箱
闪电邮
相册
有道
手机邮
印像派
梦幻人生
更多 博客首页 风格
圈子
活动
话题
找朋友
博客复制
手机博客
短信写博
热点专题
意见反馈
更多>> 相册 摄影展区
每日专题 搜索 搜博文 搜博客 随便看看>>注册 登录 MyCode沉醉在代码的世界导航
首页 日志 相册 音乐 收藏 博友 关于我 日志 布谷鸟
加博友 关注他
最新日志
追赶法解线性方程组(C语言版雅可比迭代法解方程组(C语牛顿法求方程根(C语言版)列主元高斯消去法解线性方程用改进的Euler格式解常微分通过复化求积法实现数值积分博主推荐
相关日志
随机阅读
希望能让地球多延续一分钟无法告别梁山对于一中心大夫玩游戏曝光事件的最后陈述交警等领导擦汗与新公路砸掉重建王力宏之性别叶永烈:世界最牛的迪拜冷气公共汽车站(组…首页推荐
知名showgirl诱惑组合电影首映式拍到曾轶可阿狸搞笑漫画:拯救大魔王美国大米面粉涨价了'我是白骨精'真人漫画合集果味vc上mtv台很傲娇更多>>
拉格朗日插值的C语言实现 通过复化求积法实现数值积分(C语言版)
通过最小二乘法实现曲线拟合(C语言版)C语言 2010-05-26 10:43:18 阅读67 评论0 字号:大中小 #include<stdio.h>
#include<math.h>
#define N 2 /*N为所求拟合曲线的最高次*/
#define M 5 /*M为拟合的节点数*/
double fill_in_the_blank(double *X,int *W,double *Y,int j,int choose);
void maxij(double (*table)[N+2],int
m);/*将表格table中(m,m)到(n,n)为对角线的矩阵中绝对值最大元素置于(m,m)的位置并交换行列*/
void zeros(double (*table)[N+2],int m);/*将第m列第m个元素以下的元素变为0*/
double solution(double (*table)[N+2],double *A,int n);/*求的最终所需结果*/
main()
{
double table[N+2][N+2],A[N+1];/*X,Y分别用来求拟合点的坐标值,A用来存放最终所求值的下标*/
int i,j,m,n;/*W用来存放各拟合点的权,power中的值只有0和1,用来表示在所求的拟合表达式中是否存在相应的次幂*/
double X[M]={19,25,31,38,44};
double Y[M]={19,32.3,49,73.3,97.8};
int W[M]={1,1,1,1,1};
/*拟合曲线中存在的次幂,在此暂预先给定*/
int power[N+1]={1,0,1};
/*给table中的各元素赋值*/
for(i=0;i<(N+1);i++)
{
for(j=0;j<(N+1);j++)
{
if((power[i]!=0)&&(power[j]!=0))
table[i][j]=fill_in_the_blank(X,W,Y,i+j,0);
else
table[i][j]=0;
}
}
for(i=0;i<(N+1);i++)
{
if(power[i]!=0)
table[i
][N+1]=fill_in_the_blank(X,W,Y,i,1);
else
table[i][N+1]=0;
}
for(i=0;i<(N+1);i++)
table[N+1][i]=i;
/*将矩阵化成上三角阵*/
for(m=0;m<=N;m++)
最小二乘法c语言算法
{
maxij(table,m);
zeros(table,m);
}
/*求出最终所需结果*/
for(n=N;n>=0;n--)
{
if(table[n][n]!=0)
A[n]=solution(table,A,n);
else
A[n]=0;
}
/*按所求变量的下标顺序输出最终结果*/
for(j=0;j<=N;j++)
for(i=0;i<=N;i++)
if(table[N+1][i]==j)
{
printf("系数a%d=%g\n",j,A[i]);
break;
}
}
double solution(double (*table)[N+2],double *A,int n)
{
double sum=0,result;
int p;
for(p=N;p>n;p--)
sum+=table[n][p]*A[p];
result=(table[n][N+1]-sum)/table[n][n];
return result;
}
void zeros(double (*table)[N+2],int m)
{
double zeroing;
int i,j;
for(i=m+1;i<=N;i++)
if(table[i][m]!=0)
{
zeroing=-1*table[i][m]/table[m][m];
table[i][m]=0;
for(j=m+1;j<=(N+1);j++)
table[i][j]+=table[m][j]*zeroing;
}
}
void maxij(double (*table)[N+2],int m)
{
double exchange;
int i,j,location[2]={m,m};
/*找出最大元素的坐标*/
for(i=m;i<=N;i++)
for(j=m;j<=N;j++)
if(abs(table[location[0]][location[1]])<fabs(table[i][j]))
{
location[0]=i;
location[1]=j;
}
/*实现两元素所在行的交换*/
for(i=m;i<=(N+1);i++)
{
exchange=table[m][i];
table[m][i]=table[location[0]][i];
table[location[0]][i]=exchange;
}
/*实现列的交换*/
for(i=0;i<=(N+1);i++)
{
exchange=table[i][m];
table[i][m]=table[i][location[1]];
table[i][location[1]]=exchange;
}
}
double fill_in_the_blank(double *X,int *W,double *Y,int j,int choose)
/*choose为0填充系数矩阵(faii,faij),为1填充(f,faik)*/
{
double result=0,mid;
int k,th_power;/*th_power=j表示xi的次方数*/
if(choose==0)
for(k=0;k<M;k++)
{
mid=W[k];
if(j!=0)
for(th_power=1;th_power<=j;th_power++)
mid*=X[k];
result+=mid;
}
if(choose==1)
for(k=0;k<M;k++)
{
mid=W[k]*Y[k];
if(j!=0)
for(th_power=1;th_power<=j;th_power++)
mid*=X[k];
result+=mid;
}
return result;
} 0人 | 分享到: 阅读(67)| 评论(0)| 引用(0) |举报
拉格朗日插值的C语言实现 通过复化求积法实现数值积分(C语言版)
历史上的今天
相关文章
Matlab 最小二乘 曲线拟合
最近读者
登录后,您可以在此留下足迹。 wangshul 在路上
评论
点击登录|昵称:
取消 验证码:换一张
上一页 1... -1-1-1-1-1-1-1... -1下一页 页脚
公司简介 - 联系方法 - 招聘信息 - 客户服务 - 相关法律 -
网易公司版权所有 ©1997-2010×登录
欢迎通过百度搜索来到布谷鸟的博客!
注册登录后,你也可以拥有自己的个人博客,还可以和博友更好的交流。
网易博客欢迎你的加入
请输入登录信息
用户名: 密 码:
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




