
Другие языки программирования и технологии
Visual Basic. Подскажите в кратце, как выполнить задачу.

Sub Lin_Approx()
Dim X() As Single, Y() As Single, Msg As String, D As Single
Dim i As Integer, N As Integer, K As Single, B As Single, Sigma As Single
Dim SY As Single, SX As Single, SXY As Single, SQX As Single, YSR As Single
N = InputBox ("Vvedite N")
ReDim X(N), Y(N)
SX = 0 : SY = 0 : SQX = 0 : SXY = 0 : YSR = 0
For i = 1 To N
__Msg = "Vvedite X(" & i & ")" : X(i) = InputBox (Msg)
__Msg = "Vvedite Y(" & i & ")" : Y(i) = InputBox (Msg)
__SX = SX + X(i) : SY = SY + Y(i) : SQX = SQX + X(i) * X(i) : SXY = SXY + X(i) * Y(i)
Next i
K = (SX * SY - N * SXY) / (SX*SX - N*SQX)
B = (SY - K * SX) / N
YSR = SY / N : D = 0
For i = 1 To N
__D = D + (YSR - Y(i)) * (YSR - Y(i))
Next i
Sigma = Sqrt (D / (N - 1))
' В формуле сигмы непонятно, что такое Y в формуле (Y - Y(i))^2
' Мне кажется, что это среднее Yср = сумме Y(i) / N.
' Если это не так, то вычисление YSR, D и Sigma придется изменить по правильным формулам.
Msg = "Y = " & K & "* x + " & B & "; Sigma = " & Sigma
MsgBox (Msg)
End Sub
Вот примерно так. На самом деле программировать математику на VB - одно удовольствие.
Язык практически под математику и заточен, в первую очередь.
Вот пытаться на нем писать анимацию или звук - намного сложнее.
Dim X() As Single, Y() As Single, Msg As String, D As Single
Dim i As Integer, N As Integer, K As Single, B As Single, Sigma As Single
Dim SY As Single, SX As Single, SXY As Single, SQX As Single, YSR As Single
N = InputBox ("Vvedite N")
ReDim X(N), Y(N)
SX = 0 : SY = 0 : SQX = 0 : SXY = 0 : YSR = 0
For i = 1 To N
__Msg = "Vvedite X(" & i & ")" : X(i) = InputBox (Msg)
__Msg = "Vvedite Y(" & i & ")" : Y(i) = InputBox (Msg)
__SX = SX + X(i) : SY = SY + Y(i) : SQX = SQX + X(i) * X(i) : SXY = SXY + X(i) * Y(i)
Next i
K = (SX * SY - N * SXY) / (SX*SX - N*SQX)
B = (SY - K * SX) / N
YSR = SY / N : D = 0
For i = 1 To N
__D = D + (YSR - Y(i)) * (YSR - Y(i))
Next i
Sigma = Sqrt (D / (N - 1))
' В формуле сигмы непонятно, что такое Y в формуле (Y - Y(i))^2
' Мне кажется, что это среднее Yср = сумме Y(i) / N.
' Если это не так, то вычисление YSR, D и Sigma придется изменить по правильным формулам.
Msg = "Y = " & K & "* x + " & B & "; Sigma = " & Sigma
MsgBox (Msg)
End Sub
Вот примерно так. На самом деле программировать математику на VB - одно удовольствие.
Язык практически под математику и заточен, в первую очередь.
Вот пытаться на нем писать анимацию или звук - намного сложнее.
Игорь Макаров
Огромная благодарность!
Похожие вопросы
- Продаю программу с исходниками на Visual Basic 2008 за 50 руб.
- Помогите. Выполнить обязательно в Visual basic. Даже не Free basic. Либо помогите расписать каждую строчку кода.
- Подойдет ли самоучитель по Visual Basic .NET для освоения языка Basic, человеку не понимающему в программировании?
- Visual Basic или C#
- Нужна помощь по Visual Basic
- visual basic 6
- visual basic 2008
- Программа на Microsoft Visual Basic 2008
- как в visual basic определить методом Монте-Карло площадь треугольника?
- Visual Basic и Excel (+)