帮忙把下面c语言程序改为c++语言,程序为用矩形法求fx=1/(1+x^2)在0到1的定积分近似值,求修改成能运行啊
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/24 19:16:22
帮忙把下面c语言程序改为c++语言,程序为用矩形法求fx=1/(1+x^2)在0到1的定积分近似值,求修改成能运行啊
format long
n=100;a=0;b=1;
inum1=0;inum2=0;inum3=0;
syms x fx
fx=1/(1+x^2);
for i=1:n
xj=a+(i-1)*(b-a)/n; %左点
xi=a+i*(b-a)/n; %右点
fxj=subs(fx,'x',xj); %左点值
fxi=subs(fx,'x',xi); %右点值
fxij=subs(fx,'x',(xi+xj)/2); %中点值
inum1=inum1+fxj*(b-a)/n;
inum2=inum2+fxi*(b-a)/n;
inum3=inum3+fxij*(b-a)/n;
end
inum1
inum2
inum3
integrate=int(fx,0,1)
integrate=double(integrate)
fprintf('The relative error between inum1 and real-value is about:%d\n\n',...
abs((inum1-integrate)/integrate))
fprintf('The relative error between inum2 and real-value is about:%d\n\n',...
abs((inum2-integrate)/integrate))
fprintf('The relative error between inum3 and real-value is about:%d\n\n',...
abs((inum3-integrate)/integrate))
附录2:梯形法(fulu2.m)
format long
n=100;a=0;b=1;inum=0;
syms x fx
fx=1/(1+x^2);
for i=1:n
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,'x',xj);
fxi=subs(fx,'x',xi);
inum=inum+(fxj+fxi)*(b-a)/(2*n);
end
inum
integrate=int(fx,0,1)
integrate=double(integrate)
fprintf('The relative error between inum and real-value is about:%d\n\n',...
abs((inum-integrate)/integrate))
梯形法不用理他,只需改矩形法的
format long
n=100;a=0;b=1;
inum1=0;inum2=0;inum3=0;
syms x fx
fx=1/(1+x^2);
for i=1:n
xj=a+(i-1)*(b-a)/n; %左点
xi=a+i*(b-a)/n; %右点
fxj=subs(fx,'x',xj); %左点值
fxi=subs(fx,'x',xi); %右点值
fxij=subs(fx,'x',(xi+xj)/2); %中点值
inum1=inum1+fxj*(b-a)/n;
inum2=inum2+fxi*(b-a)/n;
inum3=inum3+fxij*(b-a)/n;
end
inum1
inum2
inum3
integrate=int(fx,0,1)
integrate=double(integrate)
fprintf('The relative error between inum1 and real-value is about:%d\n\n',...
abs((inum1-integrate)/integrate))
fprintf('The relative error between inum2 and real-value is about:%d\n\n',...
abs((inum2-integrate)/integrate))
fprintf('The relative error between inum3 and real-value is about:%d\n\n',...
abs((inum3-integrate)/integrate))
附录2:梯形法(fulu2.m)
format long
n=100;a=0;b=1;inum=0;
syms x fx
fx=1/(1+x^2);
for i=1:n
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,'x',xj);
fxi=subs(fx,'x',xi);
inum=inum+(fxj+fxi)*(b-a)/(2*n);
end
inum
integrate=int(fx,0,1)
integrate=double(integrate)
fprintf('The relative error between inum and real-value is about:%d\n\n',...
abs((inum-integrate)/integrate))
梯形法不用理他,只需改矩形法的
#include
#include
class tang
{
double a,b,n,x1,x2,x3;
public:
tang(int a,int b,int k);
int calc();
void show();
double f(double x);
};
tang::tang(int i,int j,int k):a(i),b(j),n(k)
{
}
double tang::f(double x)
{
return (1/(1+x*x));
}
int tang::calc()
{
if(a>b)
return -1;
double h=(b-a)/n;
int i;
x1=x2=x3=0;
for(i=0;i
再问: 能给联系方式么,很需要您的帮忙,qq可以么,可以把qq号发到我邮箱liuzheng911020@126.com
再答: 574366563
#include
class tang
{
double a,b,n,x1,x2,x3;
public:
tang(int a,int b,int k);
int calc();
void show();
double f(double x);
};
tang::tang(int i,int j,int k):a(i),b(j),n(k)
{
}
double tang::f(double x)
{
return (1/(1+x*x));
}
int tang::calc()
{
if(a>b)
return -1;
double h=(b-a)/n;
int i;
x1=x2=x3=0;
for(i=0;i
再问: 能给联系方式么,很需要您的帮忙,qq可以么,可以把qq号发到我邮箱liuzheng911020@126.com
再答: 574366563
c程序 用矩形法编一个通用函数求定积分 0到1区间
在C语言程序中如何定义函数e^(-1/t)/t^2啊?求大哥帮忙.用梯形法求积分的.对了,你会用辛普森法求积分吗
用C语言编写一个求定积分的程序
C语言用do while循环求1到200的奇数个数?要程序能运行的!
编一个C语言程序--求f(x)在a,b上的定积分
求教我的程序哪里出错了 变步长梯形法求数值积分用c语言实现 f(x)=sin(x)/x 0到1的积分 急待
写出计算下面定积分的C语言程序?
编个C语言程序,用热二分法求方程x^3+4x-10=0 在区间[1,2]内的根(精确到0.00001)
C语言程序题——求π的近似值
用C语言编写程序 :输入一个在[0,1]范围内的小数,用二分法求√x的值.
C语言编程求函数y=sinx在(0,1)区间的定积分?
C语言.VC6.0软件写用变步长梯形求积法计算定积分f(x)=e^(-x^2)在[1,2]上积分.C语言C语言