1. ;
2. (1; 0) ;
3. A:
4. l0 α0;
5. 1 : xi = 0 + ih, h
x1 = 0 + 1 0,2 = 1,2;
6. x0x1: x0 + h/2, l0, B(xB; yB);
7. :
xB = x0 + h/2 = 0 + 0,2/2 = 0.1
yB = y0 + h/2 f(x0; y0) = -1.8 + 0,2/2 0 = -1.8
, B (0.1; -1,8);
8. B:
αB = arctg(f(xB; yB)) = arctg((0.1 (-1.8)2+2*0.1*(-1.8)) = arctg(-0.036) = 2
9. l1 B αB;
10. x = x1 = 1,2 l1, C(x1; y1);
11. y C:
y1 = yB + h/2(f(xB;yB)) = -1.8+ 0,2/2 (-0.036) = -1.8036
, C (1,2; -1.8036).
.
.
.
| |||||
.
.
Private x() As Single, e() As Single, em() As Single, o() As Single, y() As Single
Private i, n As Integer
Private x0, xk, y0, h, miny, maxy, minx, maxx As Single
Function f(x, y) As Single
'
f = x * y ^ 2 + 2 * x * y
End Function
Private Sub Eiler()
ReDim x(n)
ReDim e(n)
x(0) = x0
e(0) = y0
For i = 0 To n - 1
x(i) = Round(x0 + (i * h), 3)
e(i + 1) = Round(e(i) + h * f(x(i), e(i)), 3)
Next i
End Sub
Private Sub EilerM()
ReDim x(n)
ReDim em(n)
x(0) = x0
em(0) = y0
For i = 0 To n - 1
x(i) = Round(x0 + i * h, 3)
em(i + 1) = Round(em(i) + h * f(x(i) + h / 2, em(i) + h / 2 * f(x(i), em(i))), 3)
Next i
End Sub
Private Sub Obshee()
ReDim x(n)
ReDim o(n)
x(0) = x0
o(0) = y0
' maxy = y0
' miny = y0
' maxx = x0
' minx = x0
For i = 1 To n
x(i) = Round(x0 + i * h, 3)
' If x(i) > maxx Then maxx = x(i)
' If x(i) > maxx Then maxx = x(i)
o(i - 1) = (-2) / (1 + f(x(i), o(i)) * (Exp(-x(i)) ^ 2))
o(i) = Round(ft * (x(i) - 1), 3)
|
|
Next i
End Sub
Private Sub Command1_Click()
x0 = Val(Text1.Text)
xk = Val(Text2.Text)
h = Val(Text3.Text)
y0 = Val(Text4.Text)
n = Round((xk - x0) / h)
ReDim x(n)
ReDim e(n)
ReDim em(n)
ReDim o(n)
'
MSFlexGrid1.Cols = 4
MSFlexGrid1.Rows = n + 2
MSFlexGrid1.TextMatrix(0, 0) = "x"
MSFlexGrid1.TextMatrix(0, 1) = " "
MSFlexGrid1.TextMatrix(0, 2) = ""
MSFlexGrid1.TextMatrix(0, 3) = " ."
Eiler
EilerM
Obshee
For i = 0 To n '
MSFlexGrid1.TextMatrix(i + 1, 0) = Str(x(i))
MSFlexGrid1.TextMatrix(i + 1, 1) = Str(o(i))
MSFlexGrid1.TextMatrix(i + 1, 2) = Str(e(i))
MSFlexGrid1.TextMatrix(i + 1, 3) = Str(em(i))
Next i
minx = x(0)
maxx = x(n)
' miny =
' maxy = 1
For i = 0 To n
If miny > o(i) Then miny = o(i)
If miny > e(i) Then miny = e(i)
If miny > em(i) Then miny = em(i)
If maxy < o(i) Then maxy = o(i)
If maxy < e(i) Then maxy = e(i)
If maxy < em(i) Then maxy = em(i)
Next i
If miny = maxy Then
miny = -2
maxy = 2
End If
'
If e(n) > o(n) Then maxy = e(n)
If em(n) > o(n) Then maxy = em(n)
If e(n) > em(n) Then maxy = e(n)
Picture1.Cls
Label10.Caption = Str(miny)
Label11.Caption = Str(maxy)
Label8.Caption = Str(minx)
Label12.Caption = Str(maxx)
'
kx = (Picture1.Width - 1200) / (maxx - minx)
ky = (Picture1.Height - 1200) / Abs(maxy - miny)
For i = 0 To n - 1 '
z1 = Round(600 + (x(i) - x0) * kx)
z2 = Round(6480 - (e(i) - miny) * ky)
z3 = Round(600 + (x(i + 1) - x0) * kx)
z4 = Round(6480 - (e(i + 1) - miny) * ky)
Picture1.Line (z1, z2)-(z3, z4), RGB(0, 0, 9999)
Next i
For i = 0 To n - 1 '
z1 = Round(600 + (x(i) - x0) * kx)
z2 = Round(6480 - (em(i) - miny) * ky)
z3 = Round(600 + (x(i + 1) - x0) * kx)
z4 = Round(6480 - (em(i + 1) - miny) * ky)
Picture1.Line (z1, z2)-(z3, z4), RGB(0, 9999, 0)
Next i
For i = 0 To n - 1 '
z1 = Round(600 + (x(i) - x0) * kx)
z2 = Round(6480 - (o(i) - miny) * ky)
z3 = Round(600 + (x(i + 1) - x0) * kx)
z4 = Round(6480 - (o(i + 1) - miny) * ky)
Picture1.Line (z1, z2)-(z3, z4), RGB(9999, 0, 0)
Next i
End Sub
MathCad.
.
, . Visual Basic MathCad.
, , , .
, , , .