
我觉得
这里的i、m、n以及r都是在Command1事件里面声明的
在其他事件里面 并不能识别这些变量了 所以应该在通用里面声明这些变量
另外看你的控件摆放 label框中的程序 应该用Command2的Click事件触发比较好
其实这个只需要用"最小平方法"就可以了
用统计学上的"最小平方法"也叫"最小二乘法"。
你的意思是给你算法思路还是写个现成的给你?
我不知道你的点是线性还是非线性。我给一个线性的给你。
但这个是用网页脚本写的(脚本语言:VBSCRIPT)。你先试试,觉得可以就把代码转化到VB环境吧,其实也差不多。
新建一个TXT文件,把以下内容复制进去,保存后把此txt文件的扩展名改为HTML,用IE运行。
<script language="Vbscript">
Sub C(strx,stry,s)
If (IsNumeric(Replace(Replace(strx,",",""),"","")) = False or IsNumeric(Replace(Replace(stry,",",""),"","")) = False) Then
documentbasersvalue = "计算失败! 格式错误!"
Exit Sub
End If
x = Split(Trim(strx),",")
y = Split(Trim(stry),",")
If (Ubound(x) - Lbound(x)) - (Ubound(y) - Lbound(y)) <> 0 Then
documentbasersvalue = "计算失败! x序列元素个数与y序列元素个数不相等!"
Exit Sub
ElseIf (Ubound(x) - Lbound(x)) = 0 Then
documentbasersvalue = "计算失败! 样本数太少!"
Exit Sub
Else
n = Ubound(x) - Lbound(x) + 1
Sx = 0
Sy = 0
SxSq = 0
Sxy = 0
for i = Lbound(x) to Ubound(x)
Sx = Sx + x(i)
Sy = Sy + y(i)
SxSq = SxSq + x(i)^2
Sxy = Sxy + x(i) y(i)
next
End If
''''''''''''''''''''''''''''''''''''''''''''''''''
D = n SxSq - Sx Sx
a = FormatNumber((Sy SxSq - Sx Sxy) / D, s ,True)
b = FormatNumber((n Sxy - Sx Sy) / D, s ,True)
documentbasersvalue = "a = " & a &" ; " & "b = " & b
End Sub
</script>
<form name="base">
<p><font color="blue">x:</font> <input type="text" name="x" value="" size="50" /></p>
<p><font color="blue">y:</font> <input type="text" name="y" value="" size="50" /></p>
<p>保留小数位数 <input name="ss" value="5" size="2">
<p><input type="button" value="go" OnClick="call C(documentbasexvalue,documentbaseyvalue,documentbasessvalue)" /></p>
<p><br> <input name="rs" size="50" /></p>
</form>
打开后,有x和y,在x中输入1,2,,2000
y中输入你的2000个点,用“,"隔开
以上就是关于关于VB程序中 乘法运算 的编写全部的内容,包括:关于VB程序中 乘法运算 的编写、用VB写个算法、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)