8#include <iostream>
#include <math.h>
using namespace std;
double f(double x)
{
if(x==0)return 1;
return sin(x)/x;
}
void main()
{
double a,b,c;//(a,b)为区间大小,c为控制精度
cout<<"请输入起始节点值,结束节点值,和控制精度:";
cin>>a>>b>>c;
double h=b-a;
double T1=h*0.5*(f(a)+f(b));
while(1)
{
double s=0;
double x=a+(h/2);
do
{
s=s+f(x);
x=x+h;
}while(x<b);
double T2=T1*0.5+(h*s*0.5);
if(fabs(T2-T1)<c)
{
cout<<"在精度为"<<c<<"的时候,"<<"f(x)=sinx/x根据变步长算法得出的结果为:"<<T2<<endl;
break;
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载