社区
C语言
帖子详情
那里有最小二乘法的介绍及程序?
blackrye
2002-12-27 08:21:58
rt
...全文
133
5
打赏
收藏
那里有最小二乘法的介绍及程序?
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blackrye
2002-12-29
打赏
举报
回复
哪里有关于最小二乘法的一些介绍?
winco
2002-12-29
打赏
举报
回复
对,任何一本数值分析上面都有
pick
2002-12-29
打赏
举报
回复
在一些《数值分析》书上一般都有介绍
sea_lover
2002-12-27
打赏
举报
回复
up
renhit
2002-12-27
打赏
举报
回复
给你贴个例子:(Turboc2.0)
#include "bmaqr.c"
#include "stdio.h"
#include "agmqr.c"
main()
{ int i,m,n;
static double a[4][3]={ {1.0,1.0,-1.0},{2.0,1.0,0.0},
{1.0,-1.0,0.0},{-1.0,2.0,1.0}};
static double b[4]={2.0,-3.0,1.0,4.0};
static double q[4][4];
m=4; n=3;
i=agmqr(a,m,n,b,q);
if (i!=0)
{ for (i=0; i<=2; i++)
printf("x(%d)=%13.7e\n",i,b[i]);
printf("\n");
printf("MAT Q IS:\n");
for (i=0; i<=3; i++)
printf("%13.7e %13.7e %13.7e %13.7e\n",
q[i][0],q[i][1],q[i][2],q[i][3]);
printf("\n");
printf("MAT R IS:\n");
for (i=0; i<=3; i++)
printf("%13.7e %13.7e %13.7e\n",
a[i][0],a[i][1],a[i][2]);
}
}
//
#include "math.h"
#include "stdio.h"
int bmaqr(a,m,n,q)
int m,n;
double a[],q[];
{ int i,j,k,l,nn,p,jj;
double u,alpha,w,t;
if (m<n)
{ printf("fail\n"); return(0);}
for (i=0; i<=m-1; i++)
for (j=0; j<=m-1; j++)
{ l=i*m+j; q[l]=0.0;
if (i==j) q[l]=1.0;
}
nn=n;
if (m==n) nn=m-1;
for (k=0; k<=nn-1; k++)
{ u=0.0; l=k*n+k;
for (i=k; i<=m-1; i++)
{ w=fabs(a[i*n+k]);
if (w>u) u=w;
}
alpha=0.0;
for (i=k; i<=m-1; i++)
{ t=a[i*n+k]/u; alpha=alpha+t*t;}
if (a[l]>0.0) u=-u;
alpha=u*sqrt(alpha);
if (fabs(alpha)+1.0==1.0)
{ printf("fail\n"); return(0);}
u=sqrt(2.0*alpha*(alpha-a[l]));
if ((u+1.0)!=1.0)
{ a[l]=(a[l]-alpha)/u;
for (i=k+1; i<=m-1; i++)
{ p=i*n+k; a[p]=a[p]/u;}
for (j=0; j<=m-1; j++)
{ t=0.0;
for (jj=k; jj<=m-1; jj++)
t=t+a[jj*n+k]*q[jj*m+j];
for (i=k; i<=m-1; i++)
{ p=i*m+j; q[p]=q[p]-2.0*t*a[i*n+k];}
}
for (j=k+1; j<=n-1; j++)
{ t=0.0;
for (jj=k; jj<=m-1; jj++)
t=t+a[jj*n+k]*a[jj*n+j];
for (i=k; i<=m-1; i++)
{ p=i*n+j; a[p]=a[p]-2.0*t*a[i*n+k];}
}
a[l]=alpha;
for (i=k+1; i<=m-1; i++)
a[i*n+k]=0.0;
}
}
for (i=0; i<=m-2; i++)
for (j=i+1; j<=m-1;j++)
{ p=i*m+j; l=j*m+i;
t=q[p]; q[p]=q[l]; q[l]=t;
}
return(1);
}
//
#include "stdlib.h"
int agmqr(a,m,n,b,q)
int m,n;
double a[],b[],q[];
{ int i,j;
double d,*c;
extern int bmaqr();
c=malloc(n*sizeof(double));
i=bmaqr(a,m,n,q);
if (i==0) { free(c); return(0);}
for (i=0; i<=n-1; i++)
{ d=0.0;
for (j=0; j<=m-1; j++)
d=d+q[j*m+i]*b[j];
c[i]=d;
}
b[n-1]=c[n-1]/a[n*n-1];
for (i=n-2; i>=0; i--)
{ d=0.0;
for (j=i+1; j<=n-1; j++)
d=d+a[i*n+j]*b[j];
b[i]=(c[i]-d)/a[i*n+i];
}
free(c); return(1);
}
代码
最小二乘法
基本
程序
代码
代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码代码
最小二乘法
基本
程序
代码
最小二乘法
滤波MATLAB
程序
最小二乘法
滤波MATLAB
程序
递推
最小二乘法
matlab
程序
递推
最小二乘法
matlab
程序
vb编写的
最小二乘法
线性拟合
程序
用vb编写的 用于
最小二乘法
数据拟合的 小
程序
。 多多指教
最小二乘法
拟合直线
程序
最小二乘法
拟合直线。曲线拟合的
最小二乘法
(基于OpenCV实现)的,拟合图像中离散点的拟合直线 今天使用拟合的
最小二乘法
,求出了给定的一组坐标系上的点对最接近的直线的。
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章