有什么软件可以计算微积分啊

有什么软件可以计算微积分啊,第1张

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12557956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存