- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试编写一个程序,通过使用梯形法则来用 C 语言求解曲线下的面积。问题是,我觉得我的逻辑没问题,我已经检查了很多次算法,但我仍然找不到错误。
这是我的教授布置的一些内容,他不希望我们使用数组,这就是为什么你看不到任何内容。
它扫描 func,a, p, q, err,其中 func 是将要使用的函数(函数 #1 或 #2,但我只完成了 #1),a 是常量,p 是我认为初始的x,q是最终的x,err是误差幅度。
程序将划分间隔并计算面积,直到最后一次计算面积 - 我们刚刚计算的总面积小于 10^-err
编辑:感谢 LutzL,我做了一些更改
#include<stdio.h>
#include<math.h>
double F1(double x,double a){
double f1=0.0;
f1=(sqrt(a-pow(x,2)));
return f1;
}
int main(){
double a=0.0,p=0.0,q=0.0,h=0.0,x=0.0,err=0;
int func=3,n=2;
double power=0.0,T=0.0;
double sum=0.0,last=0.0,difference=1.0;
scanf("%d",&func);
while(func!=0){
n=2;
scanf("%lf%lf%lf%lf",&a,&p,&q,&err);
power=pow(10.0,-err);
h=(q-p)/n;
if(func==1){
difference=1.0;
while(difference>=power){
h=(q-p)/n;
sum=0.0;
for(x=p+h;x<=q-h;x++){
sum+=(2*F1(x,a));
}
T=(h/2)*(F1(p,a)+F1(q,a)+sum);
if(difference==1.0){
difference=T;
}else{
difference=last-T;
}
last=T;
n++;
}
}
printf("%.5lf\n",T);
scanf("%d",&func);
}
return 0;
}
错误是当我输入 1, 4, -2, 1, 9 时。它应该输出 5.05481,但它却输出 4.59808。
最佳答案
sum
应该将参数的函数值从 p+h
添加到 p+(n-1)*h=q-h
,即是,n-1
个函数值。此时您添加了 n
个函数值。
您不能在循环内加倍 n
。
最佳实现使用中点总和
M(k)= f(p+h/2)+f(p+3h/2)+...+f(p+(2n-1)*h/2)
其中n=2^k,h=(q-p)/2^k
。
然后是梯形和
T(k)=0.5*f(p)+f(p+h)+...+f(p+(n-1)*h)+0.5*f(q)
满足递归
T(k+1) = T(k) + M(k)
与T(0)=(f(p)+f(q))/2
。积分近似当然是T(k)*(q-p)/2^k
。
关于c - 黎曼和,C 梯形法则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40420936/
当你进入页面http://m.google.com使用 Mobile Safari,您会在页面顶部看到漂亮的栏。 我想像那样画一些梯形(美国:梯形),但我不知道怎么画。我应该使用 css3 3d 转换
它基本上是一个 flex 的 div: 那么可以只使用 CSS 而不使用图像吗? 最佳答案 嗯...我是这个形状最大的怀疑者,但它似乎是可能的 O_o Demo HTML CSS .shape
我希望在 Java 中创建一个星号梯形,就像下面使用嵌套 for 循环的模式一样。 ** **** ******** 我知道如何打印两个、四个然后六个星号,如下面的代码所示。但是,我不知道如何创建两个
关于 Python 中实时数据的数值积分(梯形)的问题- 背景:实时测量一个平均速度为 100 米/分钟的移动物体,我每 100 毫秒采样一次,持续 60 秒 - 因此在一分钟结束时,我将获得 600
我很难解决这个问题: 我想用 css 做这个: 如图:两个圆 Angular 的飞人(重要!),一个带文字的飞人,一个带图片,或者图标的飞人,有图标的飞人尺寸可以细一些,但是两个飞人必须是大小相同。
我想创建一个响应式梯形形状,它可以是 CSS、SVG 或 Canvas。 我已经能够创建三 Angular 形,但不能创建响应式的梯形。 div { width: 0; height: 0;
这个问题在这里已经有了答案: css skew element and get inner rounded border top (1 个回答) 关闭 4 年前。 我想用 CSS 和 HTML 自定
这是 css 在 id 上的代码工作正常: border-bottom: 100px solid #0000ff80; border-right: 50px solid transparent; he
我在使用 CSS 时遇到了一个小问题。我需要一个梯形 div,它的左上角( Angular 大于 90 度的那个)是圆 Angular 的。我已经知道了: HTML: CSS: .tr
我在使用 CSS 时遇到了一个小问题。我需要一个梯形 div,它的左上角( Angular 大于 90 度的那个)是圆 Angular 的。我已经知道了: HTML: CSS: .tr
我有这个带有伪元素的形状: https://jsfiddle.net/6gf1m3j5/ body { margin: 0; background:#ccc; } #octagon-l
我在使用 CSS 时遇到了一个小问题。我需要一个梯形 div,它的左上角( Angular 大于 90 度的那个)是圆 Angular 的。我已经知道了: HTML: CSS: .tr
我怎样才能像这里的 Tidal 一样制作一个旋转的横幅 我试过制作梯形并根据 http://browniefed.com/blog/the-shapes-of-react-native/ 将其旋转 4
我正在使用 three.js 制作一个小动画,其中有一些基本的 3D 模型,其中一个我正在努力处理的是“梯形 ”。 到目前为止,我只能在 THREE.CylinderGeometry 的帮助下创建截顶
我正在使用 three.js 制作一个小动画,其中有一些基本的 3D 模型,其中一个我正在努力处理的是“梯形 ”。 到目前为止,我只能在 THREE.CylinderGeometry 的帮助下创建截顶
我是一名优秀的程序员,十分优秀!