| 查看: 353 | 回复: 2 | ||
[求助]
为什么用曲边扇形公式编出来的求椭圆面积程式和标准答案不一样?
|
|
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> #include<time.h> #include<stdlib.h> struct coordinate { double aerpa1[5]; double aerpa2[5]; double aerpa; double r[5]; double x; double y; double a; double b; double gama; double h; double ai[5]; double s; int n; }; struct coordinate cd[626]; double fu(double x, int i, int j) { double Bt, aerpa3, aerpa4, xd, yd, res; res = 0; aerpa3 = 1; aerpa4 = 1; xd = aerpa3*(cd.a*cos(cd.aerpa)*cos(x) + cd.b*sin(cd.aerpa)*sin(x)); yd = aerpa4*(sin(x)*cos(cd.aerpa)*cd.b - sin(cd.aerpa)*cos(x)*cd.a); res = xd*xd + yd*yd; res = sqrt(res); res = pow(res, 2.0); return res; } double sguess(double xiaxian, double shangxian, int r, int l) { double x5[8] = { 0.9602898565 ,-0.9602898565,0.7966664774,-0.7966664774,0.5255354099,-0.5255354099,0.1834346425,-0.1834346425 }; double A5[8] = { 0.1012285363,0.1012285363,0.2223810345,0.2223810345,0.3137066459,0.3137066459,0.3626837834,0.3626837834 }; double * p, *t; double g = 0; int i; p = x5; t = A5; for (i = 0; i<8; i++) { g = fu((shangxian - xiaxian)*p / 2 + (xiaxian + shangxian) / 2, r, l)*t + g; } g = ((shangxian - xiaxian) / 2)*g; return g; } double S(int i) { int j; double s, sp, a, b; s = 0; s = sguess(0, 2 * 3.141592654, 0, 1); s = 0.5*s; return s; } void generate(int i) { double PI = 3.141592654; cd.a = 5; cd.b = 0.5; cd.n = 3; cd.h = PI * 2 / cd.n; cd.aerpa = 0; cd.s = S(i); } void main() { generate(0); printf("wucha=%lf,Sjisuan=%lf,Szhen=%lf\n", cd[0].s - 3.141592654*cd[0].a*cd[0].b, cd[0].s, 3.141592654*cd[0].a*cd[0].b); } 最后的运算结果是b越小误差越大,有的时候误差可以达到37(计算值)-0.7(真实值)的差距,但是圆一定不存在误差 |
» 猜你喜欢
职称评审没过,求安慰
已经有22人回复
申请26博士
已经有4人回复
垃圾破二本职称评审标准
已经有15人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有20人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
聘U V热熔胶研究人员
已经有10人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
三无产品还有机会吗
已经有6人回复
2楼2016-02-17 18:44:01
3楼2016-02-17 18:49:36













回复此楼