| 查看: 362 | 回复: 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(真实值)的差距,但是圆一定不存在误差 |
» 猜你喜欢
基金申报
已经有5人回复
基金委咋了?2026年的指南还没有出来?
已经有7人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复
常年博士招收(双一流,工科)
已经有4人回复
2楼2016-02-17 18:44:01
3楼2016-02-17 18:49:36











回复此楼