【VB开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VB开源代码-最小二乘法直线VB程序设计 - 计算机等级的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
开发研究与设计技术 本栏目责任编辑 :谢媛媛 最小二乘法直线拟合数据处理的 VB 程序
设计 王锁明, 侯彬, 陈泽珍 ( 燕山大学, 河北 秦皇岛 066004) 摘要: 利用 Visual Basic 语言实现对数据的最小二乘法处理, 使数 据 处 理 非 常 方 便 且 可 靠 性 高 , 避 免 了 大 量 的 计 算 过 程 , 保 证 数 据 处理的质量和效果 . 关键词: 数据处理; 最小二乘法; 直线拟合; visual basic 中图分类号: TP 311 文献标识码: A 文章编号: 1009- 3044(2007)15- 30782- 02 The VB P rogramming to Deal with the Data for Linear Fitting with Leas t S quare Method WANG Suo- ming, HOU Bin, CHEN Ze- zhen (Yanshan University, Qinhuangdao 066004,China) Abs tract: This paper introduces the least square method on the data processing and the programming design with visual basic language.This program will make the data processing more convenient and reliable, so the complicated computing will be avoided. Accordingly, the qual-ity and the effect of the data processing will be ensured. Key words : data processing; least square method; linear fitting; visual basic 1 引言 If X(i) > mx Then 在数据处理中 , 经常遇到两测试量 x、 间存在 y=ax+b 的 线 性 y mx = X(i)关 系 , a、 为 此 线 性 函 数 的 参 数 , 通 常 是 具 有 物 理 含 义 的 , 而 且 一 b End If般是我们的间接待求量( 或 相 差 一 常 数 倍 ) . 通 过 测 出 多 组 x,y 值 , If Y(i) > my Then同时求出未知参数 a 、 的过程, 即为 组 合 测 量 。
求 最 佳 直 线 参 数 b my = Y(i)在组合测量中比较简单, 应用较广, 但数据处理较为复杂。
而 Vi- End If If dx > X(i) Thensual Basic 作为一种可视化的
计算机编程语言 , 具有界面友好和 编 dx = X(i)程简单的特点 , 为数据处理中的大量计算提供了的捷径, 从而减少 End If计算
工作量, 得到准确的拟合曲线。
If dy > Y(i) Then 2 最小二乘法应用 dy = Y(i) 在实际工作中, 许多测量量之间的关系并 非 都 是 线 性 的 , 但 End If可通过适当的变换化成线性关系, 即将曲线变换成直线, 做这样 Next i 直的变换不仅是线性关系简单、 线容易描绘, 更重要的是直线的 sx = xx - xh * xh / n参数( 斜率和截距) 所包含的物理内涵是我们所需要的。
常见的可 sy = yy - yh * yh / n化为线性关系进行处理的函数关系有以下几种: sxy = xy - xh * yh / n ( 1 ) y=axb, 式 中 a 、 常 量 , 可 变 换 成 lgy=blgx+lga , lgy 为 lgx 的 b If sx = 0 Then线性函数, 斜率为 b , 截距为 lga ; MsgBox ”直线垂直于横轴, ” & Lx.Caption & ” 为定值 ” ( 2 ) y=abx, 式中 a 、 为 常 量 , 可 变 换 成 lgy=( lgb ) x+lga , lgy 为 x b ElseIf sy = 0 Then的线性函数, 斜率为 b , 截距为 lga ; MsgBox ” 直线平行于横轴, ” & Ly.Caption & ” 为定值 ” ( 3 ) PV=C, 式 中 C 为 常 量 , 可 变 换 成 P=C(1/V), P 为 1/V 的 线 Else性函数, 斜率为 C; a = sxy / sx 1/2 1/2 r = sxy / Sqr(sx * sy) ( 4 ) y=2px, 式 p 中 为 常 量 , 可 变 换 成 y=± 2p x , y 为 x 的 b = yh / n - xh * a / n线性函数, 斜率为 ± ; 2p If r = 1 Then b ( 5 )