1、微积分工具(App)
英文名:Calculus Tools数学软件,用来计算导数、定积分、弧长、泰勒级数,绘制函数对应的图,包括极坐标和参数以及斜率场。此禅核外,还包括积分表和自定义键盘。
2、matlab7.0
是MathWorks出品一款的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
是一款积分,微分,函数等都可以进行计算的软件。
扩展资料:
关于matlab7.0的主要功能
1、交互式工具可以按迭代的方式探查、设计及求解问题
2、此高级语言可用于技术计算
3、此开发滑兆环境可对代码信袭租、文件和数据进行管理
4、各种工具可用于构建自定义的图形用户界面
5、各种函数可将基于 MATLAB 的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成
6、数学函数可用于线性代数、微积分、统计、傅立叶分析、筛选、优化以及数值积分等
7、二维和三维图形函数可用于可视化数据。
参考资料来源:百度百科——微积分工具
参考资料来源:百度百科——matlab7.0
这是辛普森积分法。给你写了fun_1( ),fun_2(),请自己添加另外几个被积函肆神罩数。
调用方法 t=fsimp(a,b,eps,fun_i)
a,b --上下限,eps -- 迭代精度要瞎禅求。
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
double fun_1(double x)
{
return 1.0 + x
}
double fun_2(double x)
{
return 2.0 * x + 3.0
}
double fsimp(double a,double b,double eps, double (*P)(double))
{
int n,k
double h,t1,t2,s1,s2,ep,p,x
n=1h=b-a
t1=h*(P(a)+P(b))/2.0
s1=t1
ep=eps+1.0
while (ep>=eps)
{
p=0.0
for (k=0k<=n-1k++)
{
x=a+(k+0.5)*h
p=p+P(x)
}
t2=(t1+h*p)/裂闹2.0
s2=(4.0*t2-t1)/3.0
ep=fabs(s2-s1)
t1=t2s1=s2n=n+nh=h/2.0
}
return(s2)
}
void main()
{
double a,b,eps,t
a=0.0b=3.141592653589793238eps=0.0000001
// a definite integral by Simpson Method.
t=fsimp(a,b,eps,fun_1)
printf("%g\n",t)
t=fsimp(a,b,eps,fun_2)
printf("%g\n",t)
// ...
printf("\n Press any key to quit...")
getch()
}
误差界eps%被积函数为模咐亏f(x)=(x^3+sin(x))/x积分区间为[0.3,0.8]#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
/* int i,j,n
float *d=(float *)malloc(sizeof(float)*N)
float *x=(float *)malloc(sizeof(float)*N)
float *y=(float *)malloc(sizeof(float)*N)
float *u=(float *)malloc(sizeof(float)*N)
free(a)free(b)free(c)free(d)free(x)free(y)free(l)
return 0
*/
double b=0.8
double a=0.3
double h=0.0//
double eps=1.0e-5//误差界eps
int kmax=20//最大递推次数
double T1=0.0,S1=0.0,C1=0.0,R1=0.0,T2=0.0,S2=0.0,C2=0.0,R2=0.0
double sum
double *x,*f(x)
int i
h=b-a
T1=h/2*((pow(a,3)+sin(a))/a+(pow(b,3)+sin(b))/b)
printf("T1:%13.12f\n",T1)
for(int k=0k<kmaxk++)
{
h=(b-a)/(pow(2,k+1))
x=(double *)malloc(sizeof(double)*int(pow(2,k)))
for(i=0i<pow(2,k)i++)
{
x[i]=a+(2*i+1)*h
}
fx=(double *)malloc(sizeof(double)*int(pow(2,k)))
sum=0.0
for(i=0i<pow(2,k)i++)
{
fx[i]=(pow(x[i],3)+sin(x[i]))/x[i]
sum+=fx[i]
}
T2=T1/2+sum*h
printf("T2:%13.12f\n",T2)
S2=T2+(T2-T1)/3
printf("S%d:%13.12f\n",int(pow(2,k)),S2)
if(k<2)
{
if(k==1)
{
C2=S2+(S2-S1)/15
printf("C1:%13.12f\n",C2)
}
}
else
{
C2=S2+(S2-S1)/15
printf("旦神C%d:%13.12f\n",int(pow(2,k-1)),C2)
R2=C2+(C2-C1)/63
printf("R%d:%13.12f\n"简弊,int(pow(2,k-2)),R2)
if(fabs(R2-R1)<eps)
break
R1=R2
}
T1=T2S1=S2C1=C2
free(x)free(fx)
}
printf("所求积分I=%13.12f\n",R2)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)