再次求助。。vb如何做二次曲线拟合和画图?求代码研究

angrycoco 2015-04-18 07:51:01
功能要求是

输入5到6组实验数据(x,y)

要拟合成二次函数y=ax^2+bx+c的形式

算法最小二乘法最好

并能画出图形(坐标可变,不一定非要原点是0,0)

求高人出代码相助

感激不尽
...全文
319 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angrycoco 2015-04-21
  • 打赏
  • 举报
回复
引用 3 楼 zzyong00 的回复:
[quote=引用 2 楼 angrycoco 的回复:] [quote=引用 1 楼 zhao4zhong1 的回复:] http://www.baigoogledu.com/s.php?hl=zh-CN&q=%B6%FE%B4%CE%C7%FA%CF%DF%C4%E2%BA%CF+VB6%D4%B4%B4%FA%C2%EB
能给解析下这个代码吗,我要输入数据的应该做什么界面,对应哪个参数。。 Public Sub qxnh2() '最小二乘曲线拟合y=a+bx+cx^2 Dim b, c, m, n, a(1 To 10, 1 To 10) As Double Dim i, j, k, d(10) As Double 'm = 14 '9 'm为数据个数 For i = 1 To 10 Step 1 d(i) = 0 Next i For i = 1 To m Step 1 d(1) = d(1) + x(i) a(1, 2) = d(1) d(2) = d(2) + x(i) ^ 2 a(1, 3) = d(2) d(3) = d(3) + y(i) a(1, 4) = d(3) d(4) = d(4) + x(i) ^ 3 a(2, 3) = d(4) d(5) = d(5) + x(i) * y(i) a(2, 4) = d(5) d(6) = d(6) + x(i) ^ 4 a(3, 3) = d(6) d(7) = d(7) + x(i) ^ 2 * y(i) a(3, 4) = d(7) Next i a(1, 1) = m a(2, 1) = a(1, 2) a(2, 2) = a(1, 3) a(3, 1) = a(1, 3) a(3, 2) = a(2, 3) n = 3 'n为行数 m = 4 'm为列数 For k = 1 To n - 1 Step 1 For i = k + 1 To n Step 1 For j = k + 1 To m Step 1 a(i, j) = a(i, j) - a(i, k) * a(k, j) / a(k, k) Next j Next i Next k z(n) = a(n, m) / a(n, n) For k = n - 1 To 1 Step -1 z(k) = 0 For j = n To k + 1 Step -1 z(k) = z(k) + a(k, j) * z(j) Next j z(k) = (a(k, m) - z(k)) / a(k, k) Next k xs(1) = z(1): xs(2) = z(2): xs(3) = z(3): xs(4) = 0 End Sub[/quote] 这代码,不是学vb的人写的吧[/quote] 能实现功能吗。。。我需要输入的数据对应什么参数啊,出来的又是什么呢
zzyong00 2015-04-20
  • 打赏
  • 举报
回复
引用 2 楼 angrycoco 的回复:
[quote=引用 1 楼 zhao4zhong1 的回复:] http://www.baigoogledu.com/s.php?hl=zh-CN&q=%B6%FE%B4%CE%C7%FA%CF%DF%C4%E2%BA%CF+VB6%D4%B4%B4%FA%C2%EB
能给解析下这个代码吗,我要输入数据的应该做什么界面,对应哪个参数。。 Public Sub qxnh2() '最小二乘曲线拟合y=a+bx+cx^2 Dim b, c, m, n, a(1 To 10, 1 To 10) As Double Dim i, j, k, d(10) As Double 'm = 14 '9 'm为数据个数 For i = 1 To 10 Step 1 d(i) = 0 Next i For i = 1 To m Step 1 d(1) = d(1) + x(i) a(1, 2) = d(1) d(2) = d(2) + x(i) ^ 2 a(1, 3) = d(2) d(3) = d(3) + y(i) a(1, 4) = d(3) d(4) = d(4) + x(i) ^ 3 a(2, 3) = d(4) d(5) = d(5) + x(i) * y(i) a(2, 4) = d(5) d(6) = d(6) + x(i) ^ 4 a(3, 3) = d(6) d(7) = d(7) + x(i) ^ 2 * y(i) a(3, 4) = d(7) Next i a(1, 1) = m a(2, 1) = a(1, 2) a(2, 2) = a(1, 3) a(3, 1) = a(1, 3) a(3, 2) = a(2, 3) n = 3 'n为行数 m = 4 'm为列数 For k = 1 To n - 1 Step 1 For i = k + 1 To n Step 1 For j = k + 1 To m Step 1 a(i, j) = a(i, j) - a(i, k) * a(k, j) / a(k, k) Next j Next i Next k z(n) = a(n, m) / a(n, n) For k = n - 1 To 1 Step -1 z(k) = 0 For j = n To k + 1 Step -1 z(k) = z(k) + a(k, j) * z(j) Next j z(k) = (a(k, m) - z(k)) / a(k, k) Next k xs(1) = z(1): xs(2) = z(2): xs(3) = z(3): xs(4) = 0 End Sub[/quote] 这代码,不是学vb的人写的吧
angrycoco 2015-04-20
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
http://www.baigoogledu.com/s.php?hl=zh-CN&q=%B6%FE%B4%CE%C7%FA%CF%DF%C4%E2%BA%CF+VB6%D4%B4%B4%FA%C2%EB
能给解析下这个代码吗,我要输入数据的应该做什么界面,对应哪个参数。。 Public Sub qxnh2() '最小二乘曲线拟合y=a+bx+cx^2 Dim b, c, m, n, a(1 To 10, 1 To 10) As Double Dim i, j, k, d(10) As Double 'm = 14 '9 'm为数据个数 For i = 1 To 10 Step 1 d(i) = 0 Next i For i = 1 To m Step 1 d(1) = d(1) + x(i) a(1, 2) = d(1) d(2) = d(2) + x(i) ^ 2 a(1, 3) = d(2) d(3) = d(3) + y(i) a(1, 4) = d(3) d(4) = d(4) + x(i) ^ 3 a(2, 3) = d(4) d(5) = d(5) + x(i) * y(i) a(2, 4) = d(5) d(6) = d(6) + x(i) ^ 4 a(3, 3) = d(6) d(7) = d(7) + x(i) ^ 2 * y(i) a(3, 4) = d(7) Next i a(1, 1) = m a(2, 1) = a(1, 2) a(2, 2) = a(1, 3) a(3, 1) = a(1, 3) a(3, 2) = a(2, 3) n = 3 'n为行数 m = 4 'm为列数 For k = 1 To n - 1 Step 1 For i = k + 1 To n Step 1 For j = k + 1 To m Step 1 a(i, j) = a(i, j) - a(i, k) * a(k, j) / a(k, k) Next j Next i Next k z(n) = a(n, m) / a(n, n) For k = n - 1 To 1 Step -1 z(k) = 0 For j = n To k + 1 Step -1 z(k) = z(k) + a(k, j) * z(j) Next j z(k) = (a(k, m) - z(k)) / a(k, k) Next k xs(1) = z(1): xs(2) = z(2): xs(3) = z(3): xs(4) = 0 End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧