《最小二乘法数值分析实验报告》由会员分享,可在线阅读,更多相关《最小二乘法数值分析实验报告(11页珍藏版)》请在金锄头文库上搜索。
1、最小二乘法数值分析实验报告最小二乘法数值分析实验报告 篇一:数值分析+最小二乘法实验报告 数学与信息工程学院 实 课程名称: 实 验 室: 实验台号: 班 级: 姓 名: 实验日期: 验 报 告数值分析 XX 年 4 月 13 日 篇二:数值分析实验报告 数值分析实验报告 姓 专 学 号: XX 年 12 月 17 日 一 问题提出 从随机的数据中找出其规律性,给出其近似表达式的 问题,在生产实践和科学实验中大量存在,通常利用数据 的最小二乘法求得拟合曲线。在某冶炼过程中,根据统计 数据的含碳量与时间关系,试求含碳量 y 与时间 t 的拟合 曲线。 二 要求 1、用最小二乘法进行曲线拟合; 2
2、、近似解析表达 式为;f(t)=a1t+a2t+a3t 3、打印出拟合函数 f(t),并打印出 f(tj)与 y(tj)的 误差, j=1,2,.,12 4、另外选取一个近似表达式,尝试拟合效果的比较; 5、绘制出曲线拟合图。 2 3 三 意义和目的 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、 探索拟合函数的选择与拟合精度间的关系。 四 计算方法 本题要求我们用?t?a1t?a2t2?a3t3 对曲线进行拟合, 这里 m?11,?1?t,?2?t2,?3?t3,故 ?1,?1?t i?0 11 2i ?12650,?1,?2?2,?1?ti3?5445 0
3、0, i?011 11 ?2,?2?t i?0 11 4i ?24983750,?1,?3?3,?1?ti4?24983750, i?011 11 5i ?3,?2?2,?3?t i?011 ?1193362500,?3,?3?ti6?58593218750 i?0 11 ?1,y?tiyi?1365.55,?2,y?ti2yi?54350.75, i?0 i?0 ?3,y?ti3yi?2379846.25 i?0 11 由于?k,?j?aj?dj?k?0,1,n?, 可以利用此式算出拟 合曲线 j?0 n 的 ai,即 ?1,?1?1,?2?1,?3?a1?1,y1?,?,?,? a?,y?
4、2122?22? 23?2? ?,?,?,?a?,y?31?32?33?3?33? 所以求得 a1?2.6?6?51,0a2?5.29?10?7,a3?3.52?10?9, ?t?2.66?10?5t?5.29?10?7t2?3.52?10?9t3 , 1 误 1 差为 ?i?y?ti?i?0 i ,? 1, max?i? 0.455i ?0.51293892 五 程序具体实现 private void ResultReport_Load(object sender, System.EventArgs e) /初始化各个变量。 private void InitialDeal() int i
5、= 0; while(tString.Length 0) ti+ = this.InitialDeal(); this.Deal(); Convert.ToDouble(tString.Substring(0,tString.IndexO f(“,“) * tUnit; num = i; i = 0; while(yString.Length 0) yi+ = * tString = tString.Remove(0,tString.IndexOf(“,“) + 1); Convert.ToDouble(yString.Substring(0,yString.IndexO f(“,“) yUn
6、it; i = 0; while(i this.labelA11.Text = a11.ToString(“#.00E0;(#.00E0);0.00“); i = 0; while(i this.labelA12.Text = a12.ToString(“#.00E0;(#.00E0);0.00“); this.labelA21.Text = a21.ToString(“#.00E0;(#.00E0);0.00“); i = 0; while(i a12 += yi*yi*yi; i+; a11 += yi*yi; i+; yString = yString.Remove(0,yString.
7、IndexOf(“,“) + 1); 篇三:数值分析作业-曲线拟合的最小二乘法 数值分析实验报告 课题八:曲线拟合的最小二乘法 姓名: 学号: 专业: 学院: 一、实验课题:曲线拟合的最小二乘法 从随机的数据中找出其规律性,给出其近似表达式的 问题,在生产实践和科学实验中大量存在,通常利用数据 的最小二乘法求得拟合曲线。 在某冶炼过程中,根据统计数据的含碳量与时间关系, 试求含碳量与时间 t 的拟合曲线。 二、理论意义和实用价值。 如果已知函数 f(x)在若干点 xi(i=1,2,n)处 的值 yi,便可根据插值原理来建立插值多项式作为 f(x)的近似。 但在科学实验和生产实践中,往往会遇到这
8、样一种情况, 即节点上的函数值并不是很精确的,这些函数值是由实验 或观测得到的数据,不可避免地带有测量误差,如果要求 所得的近似函数曲线精确无误地通过所有的点(xi,yi),就 会使曲线保留着一些测试误差。当个别数据的误差较大时, 插值效果显然是不理想的。此外,由实验或观测提供的数据 个数往往很多,如果用插值法,势必得到次数较高的插值多 项式,这样计算起来很烦琐。 所以我们设想:在大量的随机数据 X(X1、X2、X3Xn)与 Y(y1、y2、yn),从看似无规 律的这两组离散数据中,找到一条一条曲线 Y=F(x),使数据 点均在离此曲线的上方或下方不远处,它既能反映数据的总 体分布,又不至于出
9、现局部较大的波动,更能反映被逼近函 数的特性,使求得的逼近函数与已知函数从总体上来说其偏 差按某种方法度量达到最小,这就是曲线拟合最小二乘法。 在对给出的实验(或观测)数据作曲线拟合时,一般希望各实 验(或观测)数据与拟合曲线的偏差的平方和最小,这就是最 小二乘原理。 曲线拟合不要求曲线通过所有已知点,而是要求得到的 近似函数能反映数据的基本关系。此外,由于实验或观测 提供的数据个数往往很多,如果用插值法,势必得到次数 较高的插值多项式,这样计算起来很麻烦,缺乏实用价值, 所以从某些意义上来说,在解决实际问题的过程中,曲线拟 合更具有实用价值。 三、计算过程 将给定数据作散点图,始图所示,选择
10、形如 S1(X) =a1(x)+a2(x2)+a3(x3)作为拟 合曲线,这里? x =span(1,x,x2,x3) 设 f(x)?Ca,b, ?span?0,?,?n?Ca,b, ?0,?,?n 是 正交函数族,则 * ?(f,?0)?a0 ?(?0,?0) ?*?(f,?)?(?1,?1) ?1? ?a1? ? ? ? ?*? ?(?,?)(f,?)ann?n?n? *ak?(f,?k)/(?k,?k),(4.8) nn (f,?k)*sn(x)?ak?k(x)?k(x). (4.9)2 k?0k?0|k|2 均方误差|?(x)|? |f(x)?s*(x) |?(f(x)?s*(x),f
11、(x)1/2 n 2 n 2 n ?(f,?k)(f,?k)2 ?(f,f)?(?,f)?|f|?k222? ?k?0|?k|2k?0|?k|2? 根据以上公式求出:a0=0.000 a1=-0.0052 ,a2=0.2634 a3=0.0178 n n 12 2 ?. ? 12 所求的拟合曲线为 S1(X)=- 0.0052X+0.2634x2+0.0178x3 若取 S2(X)=a0+a1(x)+a2(x2) 求出 a0=-0.0024 a1=0.2037 ,a2=0.2305 所求的 S2(X) =-0.0024+0.2037x+0.2305x2 四、曲线拟合图 五、结构程序设计 x=0
12、:5:55 y=0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64; xnum=length(x); plot(x,y,o),hold on; pi=polyfit(x,y,3) pj=polyfit(x,y,2) newx=0:0.1:55; newyi=polyval(pi,newx); newyj=polyval(pj,newx); yi=polyval(pi,x) yj=polyval(pj,x) erri=yi-y errj=yj-y plot(x,erri,.r),hold on; plot(x,errj,*b),hol
13、d on; S_erri=sum(erri.2) S_errj=sum(errj.2) plot(newx,newyi,r,newx,newyj,b),grid off,hold off; x = 0 5 10 15 20 25 30 35 40 45 50 55 pi = 0.0000-0.0052 0.2634 0.0178 pj = -0.0024 0.2037 0.2305 yi = Columns 1 through 8 0.0178 1.2087 2.1646 2.9113 3.4745 3.8800 4.1536 4.3211Columns 9 through 12 4.4082 4.4407 4.4444 4.4450 yj = Columns 1 through 8 0.2305 1.1894 2.0293 2.7502 3.3521 3.8349 4.1987 4.4435Columns 9 through 12 4.5693 4.5760 4.4637 4.2324 erri = Columns 1 through 8 0.0178-0.0613 0.0046 0.0513 0.0345 0.0100 0.0036-0.0489Columns 9 through 12 -0.1018-0.1393 0.4244-0.1950 errj =