⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 integral.cs

📁 C#编写的二重积分算法-数值分析算法
💻 CS
字号:
using System;

namespace szfx
{
	//二重积分
	public class integral
	{
		public delegate double Calculation(double x,double y);
		public integral()
		{
		}
		public static void run()
		{
			double pi = Math.PI;
			double s;
			s = ff(0,pi/2,0,pi/4,100);
			Console.WriteLine(s);
		}
		public static double ff(double a,double b,double c,double d,int div)
		{
			double I,h;
			int n;
			I = 0.0;
			n = 2 * div;
			h = (b-a)/n;			
			double[] X = new double[n+1];
			double[] F = new double[n+1];
			//等分x
			for(int i = 0 ; i < n ; i++)
			{
				X[i] = a + i*h;
			}
			X[n] = b;
			//求得F[k] = F([Xi])
			Calculation f = new Calculation(mysin);

			for(int k = 0 ; k <= n ; k++)
			{
				F[k] = _integral1(f,X[k],c,d,100);
			}
//			F[n] = _integral1(f,b,c,d,100);
			for(int i=0;i < div ;i++)
			{
				I += F[2*i] + 4*F[2*i+1] + F[2*i+2];
			}
			I = h / 3.0 * I;
			return I;
		}
		public static double _integral1(Calculation f,double xk,double start,double end,int div)
		{
			double s,h,y;
			int i;
			if((div <= 0) ||(end - start <=0.0))
				Console.WriteLine("Start is larger than , or div <= 0 in _integral!");
			s = (f(xk,start) + f(xk,end))/2.00;
			h = (end - start)/div;
			for(i = 1; i < div ; i++)
			{
				s = s+f(xk,start+i*h);
			}
			y = s*h;
			return y;
		}
		public static double mysin(double x,double y)
		{
			double r_f;
			r_f = Math.Sin(x+y);
			return r_f;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -