一道小学奥数题
来源:互联网 发布:耶稣是韩国人 知乎 编辑:程序博客网 时间:2024/04/30 03:29
正方形的边长为1,假设正方形左下角的点位原点,求ABCD的面积。
采用x积分的方法求此面积。
首先求B,C两点的横坐标x1,x2,然后将面积积分分为两部分。第一部分从x1积分到x2,第二部分从x2积分到1。
实现的c++代码如下。
#include<iostream>
#include<cmath>
using namespace std;
void intersection(double* x11,double* x22);
double c1(double x);
double c21(double x);
double c22(double x);
double simpson(double x1,double x2,double(*f)(double),double(*g)(double));
int main()
{
double x1,x2;
intersection(&x1,&x2);
double square;
square=simpson(x1,x2,c21,c1)+simpson(x2,1.0,c21,c22);
cout << square << endl;
return 0;
}
void intersection(double* x11,double* x22)
{
double a=2,b=-2.5,c=0.5625,deta;
deta = b*b-4*a*c;
if(deta>0)
{
*x22 = (-b+sqrt(deta))/(2*a);
*x11 = *x22-sqrt(deta)/a;
}
else cout << "there is no solution;\n";
}
double c1(double x)
{
return sqrt(1-x*x);
}
double c21(double x)
{
return (0.5+sqrt(0.25-(x-0.5)*(x-0.5)));
}
double c22(double x)
{
return (0.5-sqrt(0.25-(x-0.5)*(x-0.5)));
}
double simpson(double x1,double x2,double(*f)(double),double(*g)(double))
{
double h=x2-x1,I2n=0,T2n=h*(f(x1)+f(x2)-g(x1)-g(x2))/2,In=T2n,Tn;
for(int n=1;abs(I2n-In)>1e-3;n+=n,h/=2.0)
{
In=I2n;Tn=T2n;
double sigma=0;
for(int k=0;k<n;k++)
sigma += f(x1+(k+0.5)*h)-g(x1+(k+0.5)*h);
T2n = (Tn+h*sigma)/2;
I2n = (4*T2n-Tn)/3;
}
return I2n;
}
- 一道小学奥数题
- 一道小学奥数题,不会做,求解答
- 小学数学题一道
- 一道小学的题目
- 一道小学的数学题
- 一道小学奥数题,没做出来。求解答
- 搞不明白,小学应用题一道
- 一道小学数学题[状元蹄]
- 一道小学五年级的数学题
- 一道小学五年级的编程题
- 用随机数计算一道小学计算题
- 一道小学算术题,忽悠了全国人民.
- 关于一道小学奥数题目
- 一道小学数学题,坑死我了!!!
- 写程序来解决一道小学数学题
- 一道小学题引发的思考
- 从朋友圈一道小学试题想到的
- 一道85%网民做错的小学算术题
- 启用 SharePoint 2010 的匿名用户访问支持
- android中java的知识(一)
- Spring 整合Quartz 2实现定时任务五:集群、分布式架构实现探讨
- Spark RDD API详解(一) Map和Reduce
- Spring整合Mybatis【自动扫描方式】
- 一道小学奥数题
- Unity编程笔录--ulua+PureMVC框架简单热更新使用-后续web服务器篇
- Android开发性能优化大总结
- VS2010+DDK编译驱动方式
- ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制
- httpd源码分析
- 新建事件循环 避免出现未响应 QEventLoop
- 学习IIS & MVC的运行原理
- 创建型模式:工厂方法模式(Factory Method Pattern)