非常直截了当的问题,当我在我的 main 中调用 Romberg 函数时,我在 Visual C# Express 中遇到了一个我不知道如何解决的错误(我在相应的行提供了错误消息)。我也尝试过使用 this.Romberg,但没有帮助。我应该怎么做?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Romberg2
{
class test
{
// the function
double f(double x)
{
double f;
f=8*(Math.Sqrt(1-x*x)-x);
return f;
}
// The Integration function
void Romberg(double a, double b, int n, double[,] R)
{
int i, j, k;
double h, sum;
h = b - a;
R[0,0]=(h/2)*(f(a)+f(b));
for (i=1; i<=n; i++)
{
h=h/2;
sum=0;
for (k=1; k <= (Math.Pow(2.0,i)-1); k +=2)
sum +=f(a+k*h);
R[i,0]=R[i-1,0]/2+sum*h;
for(j=1; j<=i; j++)
R[i,j]=R[i,j-1]+(R[i,j-1]-R[i-1,j-1])/(Math.Pow(4.0,j)-1);
}
}
static void main(int argc, char [] argv)
{
double[,] R = new double [10,10];
int n=5, digits=13;
double a=0, b=1/Math.Sqrt(2.0);
// Call the integrating function
Romberg(a, b, n, R);//ERROR: An object reference is required for the non-static field, method, or property
// Printout the diagram
for(int i=0; i<n; i++)
{
for(int j=0; j<=i; j++)
{
Console.WriteLine(R[i,j] + " ");
}
Console.WriteLine("\n");
}
}
}
}