c语言用for语句求1到100的积 用c语言算法怎么写1*2*3*4*5的积,谢谢?
用c语言算法怎么写1*2*3*4*5的积,谢谢?
写c语言的程序最好养成习惯,建个工程,然后建程序。#includ
c语言编程龙贝格积分算法?
这个程序,我正好在学计算方法的时候写过,直接贴代码
C 实现如下:
#includeltiostreamgt
#includeltcmathgt
using namespace std
const int MAXRepeat 100 //最大允许重复
double function(double x)//被积函数,根据自己的需要手工输入
{
double s
s 1.0 / (1 x)
return s
}
void Romberg(double a, double b, double epsion, double f(double x))
{
int m 1
int n 1
int k
double h
double ep
double p
double xk
double s
double q
double T[MAXRepeat]
h b - a
T[0] 0.5 * h * (f(a) f(b))
ep epsion 1.0
while ((ep gt epsion) ampamp (m lt MAXRepeat))
{
p 0.0
for (k 0 k lt n k )
{
xk a (k 0.5) * h // n-1
p p f(xk) //计算∑f(xk h/2),T
} // k0
p (T[0] h * p) / 2.0 //T`m`(h/2),变步长梯形求积公式
s 1.0
for (k 1 k lt m k )
{
s 4.0 * s //[pow(4,m)T`m`(h/2)-T`m`(h)]/[pow(4,m)-1],2m阶牛顿柯斯特公式,即龙贝格公式
q (s * p - T[k - 1]) / (s - 1.0)
T[k-1] p
p q
}
ep fabs(q - T[m - 1])
m
T[m - 1] q
n // 2 4 8 16
h / 2.0
}
for (int i 0 i lt m i )
{
int j
if (!(i % j))
{
coutltltT[i]llt tendl } else { coultlt[I]ltlt
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。