300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C#编程:元素法求解定积分/定积分定义求解定积分

C#编程:元素法求解定积分/定积分定义求解定积分

时间:2019-04-30 19:50:32

相关推荐

C#编程:元素法求解定积分/定积分定义求解定积分

比如求解\[\int_0^\pi {x{{\sin }^3}x = \frac{2}{3}} \pi \approx {\rm{2}}{\rm{.0943951}}\]

代码:

注意,这里用了一个委托类型的形参f,以便对不同的函数进行求解,n为可选参数(即具有默认值的参数)。

using System;namespace DefiniteIntegral{class Program{static void Main(string[] args){Console.WriteLine(GetDefiniteIntegral(0,Math.PI,Function.Fun_xPow_sinx_3));}//主体部分就是这个函数,其他可以不看static double GetDefiniteIntegral(double floorValue ,double upValue, Func<double, double> f, int n = 1000){double dx = (upValue - floorValue) / n;//(上限-下限)/总的划分区间数double sum = 0;double x = floorValue;for (int i = 1; i <= n; i++){// x = (xi-1 + xi)/2;x = (floorValue + dx * (i - 1) + floorValue + dx * i) / 2.0;sum += f(x) * dx;//f(x)*dx就是一个小区间的长方形面积,所有小长方形面积求和后就是积分值}return sum;}}class Function{public static double Fun_xPow_sinx_3(double x){return x * Math.Pow(Math.Sin(x), 3);}}}

代码运行结果:

前面划分区间后选择εi的时候采用了中间点,也可以统一采取右端点,即εi=xi= a + (b-a)i/n。对for循环做如下修改:

for (int i = 1; i <= n; i++){// 取右端点xi;x = floorValue + dx * i;sum += f(x) * dx;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。