计算方法VB源代码
Private Sub Command1_Click()
Dim n As Integer
Dim yi() As Single, xi() As Single, li() As Single
Dim y0 As Single, x0 As Single
n=10
x0=Val(InputBox("输入要求点的x值"))
y0=0.0
ReDim yi(n)
ReDim xi(n)
ReDim li(n)
For i=1 To n
Yi(i)=Val(InputBox("输入第"&i&"个插值点的y值")) xi(i)=Val(InputBox("输入第"&i&"个插值点的x值"))
Next i
For i=1 To n
li(i)=1
Next i
For i=1 To n
For j=1 To n
If i<>j Then li(i)=li(i)*(x0-xi(j))/(xi(i)-xi(j))
Next j
Next i
For i=1 To n
y0=y0+li(i)*yi(i)
Next i
Print "y0=";y0
Rem 二分法
Private Sub Command1_Click() Dim x1,x2,X,y1,y2,y,eer
80 x1=InputBox("x1")
x2=InputBox("x2")
y1=f(x1)
y2=f(x2)
If y1*y2<0 Then
Goto 100
Else
Print("重新输入x1和x2") End If
100 x=(x1+x2)/2
简单的vb程序代码y=f(x)
If Abs(y)<=0.000001 Then
Print("函数根为");x
Print("y=");y
Else
If y1*y<0 Then
x2=x
y2=y
Goto 100
Else
x1=x
y1=y
Goto 100
End If
End If
Public Function f(x)
Dim y
y=x^2-4*x-1
f=y
End Function
REM 牛顿迭代法
Private Sub Command1_Click()
x0=1
Do Until Abs(x^3-x-1)<=0.0001
x=x0
f=x^3-x-1
g=3*x^2-1
x0=x-f/g
Print("x0=");x0
Loop
End Sub
REM 高斯消除法求解方程组
Private Sub Command1_Click()
Dim i,j,m,n As Integer
Dim a(),z(),x(),w
n=InputBox("n")
ReDim a(n+2,n+2),z(n+2,n+2),x(n+1) For i=1 To n
For j=1 To n+1
a(i,j)=InputBox("a")
Next j
Next i
For i=1 To n
w=a(i,i)
For j=1 to n+1
a(i,j)=a(i,j)/w
Next j
if i=n Then Goto 100
For j=i+1 To n
For k=i+1 to n+1
z(i,k)=a(i,k)*a(j,i)
a(j,k)=a(j,k)-z(i,k)
Next k
Next j
Next i
100
x(n+1)=0
For k=n To 1 step-1
s=0
For j=k+1 To n
s=s+a(k,j)*x(j)
Next j
x(k)=a(k,n+1)-s
Print"x";k;")=";x(k)
Next k
End Sub
REM Jacobi迭代源程序
Private Sub Command1_Click() Dim n As Integer
Dim a(),y(),g(),b(),X1(),X2()
n=Input("方程维数");
ReDim a(n+1,n+1),y(n+1)
ReDim g(n+1),X1(n+1),X2(n+1),b(n+1,n+1) Dim s,eer,t
k=0
For i=1 To n
X1(i)=1
X2(i)=0
Next i
For i=1 To n
For j=1 To n
Print"输入A()";i,j
a(i,j)=InputBox(a(i,j))
Next j
y(i)=InputBox(y(i))
Next i
For i=1 To n
g(i)=y(i)/a(i,i)
Next i
For i=1 To n
For j=1 To n
If i=j Then
b(i,j)=0
Else
b(i,j)=-a(i,j)/a(i,i)
End If
Next j
Next i
50 eer=0
For i=1 To n