最小二乘拟合的C++实现

上传人:汽*** 文档编号:489484924 上传时间:2024-01-30 格式:DOCX 页数:6 大小:74.28KB
返回 下载 相关 举报
最小二乘拟合的C++实现_第1页
第1页 / 共6页
最小二乘拟合的C++实现_第2页
第2页 / 共6页
最小二乘拟合的C++实现_第3页
第3页 / 共6页
最小二乘拟合的C++实现_第4页
第4页 / 共6页
最小二乘拟合的C++实现_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《最小二乘拟合的C++实现》由会员分享,可在线阅读,更多相关《最小二乘拟合的C++实现(6页珍藏版)》请在金锄头文库上搜索。

1、实验名称:最小二乘拟合学 院:数学学院班级姓名:学号:实验日期 2015 年05月26日自评成绩:97一、实验目的二、实验内容与结果题目1:最小二乘拟合源程序1#include#include using namespace std;float f(int i, int j, int n, float x20)/计算矩阵的函数(int k;float s=0;for(k=0;kn;k+)(s=s+pow(xk, i+j);return s;float f1(int i, int n, float y20, float x20)/计算右端项的函数(float s=0;int k;for(k=0;

2、kn;k+)(s=s+pow(xk, i)*yk;return s;float f2(float a10, double n)/f2,f3,f4,f5为简化平方根法解方程组的函数(float s=0;int i;for(i=0;in;i+)(s=s+ai*ai;return s;float f3(float r10, float a1010, int n)(float b10,m=0;int i,j;for(i=0;in;i+)(float s=0;for(j=0;jn;j+)(s=s+rj*aji;bi=s;for(i=0;in;i+)(m=m+bi*ri;return m;float *f

3、4(float a1010, float b10, int n)(float *r;r=new float10;int i,j;for(i=0;in;i+)(float s=0;for(j=0;jn;j+)(s=s+aij*bj;ri=s;return r;void f5(int n, float e, float A1010, float B10, float l 10) (int i,k;float a,b,r10,r110,d10;float *ax;ax=f4(A, l, n);for(i=0;in;i+)(ri=Bi-axi;di=ri;if (sqrt(f2(r, n)=e)(fo

4、r(i=0;in;i+)(coutl it;else(for (k=0;kn;k+)(a=f2(r, n)/f3(d, A, n);for (i=0;in;i+)(li=li+a*di;ax=f4(A, l, n);for (i=0;in;i+)(r1i=Bi-axi;if (sqrt(f2(r1, n)=e |k+1=n)(for(i=0;in;i+)(coutci=lin;break;else(b=f2(r1, n)/f2(r, n);for(i=0;in;i+)(di=r1i+b*di;ri=r1i;int main() /主函数(int n,i,j;cout以最小二乘拟合二次多项式为例endl;float x10,y10,a1010,b10;cout请输入数据的个数:n;for(i=0;in;i+)(cout 请输入 xi=xi;cout 请输入 yi=yi;for(i=0;i3;i+)(for(j=0;j3;j+)(aij=f(i,j,n,x);for(i=0;i3;i+)(bi=f1(i,n,y,x);cout由共轭梯度法求解方程组endl;cout请输入起始迭代序列l10:endl;float l10,e;for(i=0;i3;i+)(coutlili;coute;f5(3,e,a,b,l);return 0;运行结果1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号