当前位置:首页 » 编程软件 » 编程中积分

编程中积分

发布时间: 2023-04-24 03:34:15

1. matlab编程 用数值积分法计算正弦积分函数和余弦积分函数

1、建立余弦积分函数

function y=Cosine_integral(x)

func=@(t)cos(t)/t;

y = rectangular(func,0,x,1000); %矩形法

end

2、可以在窗口下或毕山程序中调用。

x=2;

y=Cosine_integral(x);

运行结果为樱数改

求正弦积分函数的方法脊判与余弦积分函数相同。只有把cos改为sin,文件名Cosine_integral改为Sine_integral就行了。

2. MATLAB中,定积分加减怎么编程

题主给出的变积分,可以通过循环语句来解决。

第一步,将t划分若干份,如t=0:100

第二步,使用for循环语句,求解x为某值时的积分值。即

for i=1:100

。。。。。。

%求解x为某值时的积分值

end

第三步,使用integral函数求解积分值,即

t1=t(i);

eq1=@(x)exp(-(x-100).^2/15^2);

eq2=@(x)exp(-(x-50).^2/20^2);

f(i)=integral(eq1,-inf,t1)+quadgk(eq2,t1,+inf);

第四步,使用plot函数,绘制该积分的数值解图形。

3. 用c语言编程计算积分

#include #include float f1(float x) { return(1.0+x); } float f2(float x) { return(2.0*x+3.0); } float f3(float x) { return(exp(x)+1); } float f4(float x) { return(pow(1+x,2)); } float f5(float x) { return(pow(x,3)); } float fsimp(float a,float b,float (*p)(float)) { float c,s; c=(a+b)/2; s=(b-a)/6*(p(a)+4*p(c)+p(b)); return s; } int main() { float a,b; printf("请输入积分下限a的值:"); scanf("%f",&a); printf("请输入积分上限b的值:"); scanf("%f",&b); printf("%f\n",fsimp(a,b,f1)); printf("%f\n",fsimp(a,b,f2)); printf("%f\n",fsimp(a,b,f3)); printf("%f\n",fsimp(a,b,f4)); printf("%f\n",fsimp(a,b,f5)); }

4. matlab编程怎么求无穷限定积分

matlab编程求无穷限定积分:

用如态帆下程序:

syms x

f = exp(-x^2);

int(f, x, 0, inf)

结果是pi^(1/2)/2,即2分之根号派

5. C语言求函数定积分

问题就是出在数据类型上的选用上,precision=0.0000001时已经超过了float的数据范围,所以导致数据截断后precision=0.000000,从而程序在计算积分时可能陷入死循环,应该采用double型数据类型。其实不推荐楼主用如此多的define语句,程序的可读性和风格应该重于编程员的劳动度。。。
还有楼主对自然对数e的define也已经超过了计算机的可识别范围。。您那样精确的定义e并不会在结果上获得更加精确地结果,其实反倒会起到相反的作用,要知道与其用一个这样可能导致内存出错以及必定会导致数据截断的变量来实现精度的提高远远不如采用一个更精确的积分算法,而且c语言提供了自然数e为底的指数函数~而且貌似宽穗您的积分算伏巧汪法是不准确的,梯形积分的定义并非如此,其再两端的函数值应该只取1/2.希望您多加细心~
如果不介意的话,就是你的precision应该改为step~这样会能更加准备的表达了这个变量的作用,在你的程序中precision变量其实是积分步长~在数值计算方法中积分精度的控制往往不是通过细化步长来表达,而是通过后一个积分值-前一个积分值<precision 这样来实现缺仔精度控制~呵呵

6. VC编程求定积分

#include<stdio.h>
voidmain()
{备裤凳doublen,s,f0,h,x,i;
printf("输入区间分隔仿旅数纯亏n:");
scanf("%lf",&n);//这里是字母l,不是数字
h=1.0/n;
f0=4.0;
s=0.0;
for(i=1;i<n;i++)
{s+=f0*h;x=i*h;
f0=4.0/(1.0+x*x);}/*∫4/(1+x*x)dx积分上下限位0到1*/
printf("用矩形法求得定积分为:%1f ",s);}

7. C语言编程如何编写积分公式

#include<iostream.h>
//定义结构类型
structstudent
{
intnum;
charname[20];
floatgrade;
};
voidmain(void)
{
//声明数组
inti,size;
charstr[]="Thisisastring.";
intint_values[]={51,23,2,44,45,0,11};
floatfloat_values[]={15.1,13.3,22.2,10.4,1.5};
studentst_arr[]={101,"WangLin",92,102,"LiPing",85,103,"ZhaoMin",88};

//显示char类型数组元素及其大小
size=sizeof(str)/sizeof(char);
cout<<"Numberofelementsinstr:";
cout<<size<<endl;
for(i=0;i<size;i++){
cout<<str[i];
}
cout<<endl;

//显示int类型数组元素及其大小
size=sizeof(int_values)/sizeof(int);
cout<<"Numberofelementsinint_values:";
cout<<size<<endl;
for(i=0;i<size;i++){
cout<<int_values[i]<<"";
}
cout<<endl;

//显示float类型数组元素及其大小
size=sizeof(float_values)/sizeof(float);
cout<<"Numberofelementsinfloat_values:";
cout<<size<<endl;
for(i=0;i<size;i++){
cout<<float_values[i]<<"";
}
cout<<endl;

//显示student类型数组元素及其大小
size=sizeof(st_arr)/sizeof(student);
cout<<"Numberofelementsinst_arr:";
cout<<size<<endl;
for(i=0;i<size;i++){
cout<<st_arr[i].num<<"";
cout<<st_arr[i].name<<"";
cout<<st_arr[i].grade<<endl;
}
}
#include<iostream.h>
//add()函数的定义,其有返回值
doubleadd(doublex,doubley)
{
doublez;
z=x+y;
cout<<x<<"+"<<y<<"="<<z<<endl;
return(z);
}

main()
{
doublea=0.5,b=1.0;

//以不同参数形式调用函数add()
cout<<"add(1.5,2.5)="<<add(1.5,2.5)<<endl;
cout<<"add(a,b)="<<add(a,b)<<endl;
cout<<"add(2*a,a+b)="<<add(2*a,a+b)<<endl;
cout<<"----------------------"<<endl;

//以表达式方式调用函数add()
doublec=2*add(a,b);
cout<<"c="<<c<<endl;
cout<<"----------------------"<<endl;

//以语句式方式调用函数add()
add(2*a,b);
cout<<"----------------------"<<endl;

//用其他类型参数调用函数add()
intn=1,m=2;
cout<<"add("<<n<<","<<m<<")="<<add(n,m)<<endl;
}
#include<iostream.h>
//定义符号函数sgn(),其返回值为int类型
intsgn(doublex)
{
if(x>0)return(1);//返回出口1
if(x<0)return(-1);//返回出口2
return(0);//返回出口3
}
//main()函数定义
main()
{
doublex;
inti;
for(i=0;i<=2;i++){
cout<<"x=";
cin>>x;
cout<<"sgn("<<x<<")="<<sgn(x)<<endl;
}
}

8. 用C语言编写一个求定积分的程序

这是辛普森积分法。
给你写了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=1; h=b-a;
t1=h*(P(a)+P(b))/2.0;
s1=t1;
ep=eps+1.0;
while (ep>=eps)
{
p=0.0;
for (k=0;k<=n-1;k++)
{
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=t2; s1=s2; n=n+n; h=h/2.0;
}
return(s2);
}
void main()
{
double a,b,eps,t;
a=0.0; b=3.141592653589793238; eps=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();
}

9. C++中求定积分的编程

#include <亮团stdio.h>
#define DELTA 0.00001//Δt
int main()
{
double v0=5,t,s=0;
for(t=10.0;t<=15.0;t+=DELTA)
s+=(v0+2*t)*DELTA;
printf("s=%f\敬宴橘n",s);
return 0;}

结祥知果为150

10. 怎样用C语言的FOR循环写积分

用积分的累加定义~1/n当成是dx,积分 ∫f(x)dx 化为 ∑册弊[f(1/n)×1/n]相应积分限变化为累加的起始到终止值比如∫ x dx (积分限从埋销0到1)写成程序double N=10000000;double i;double sum=0; for(i=1; i<N;i++){sum+=(i/n)*(1/n); // i/n相当于x,1/n相当于dx,它们累加一遍就是州液族积分了~}printf("%lf\n",sum);当然这里的N应为无穷才可使1/n趋于0,但显然只可用近似来完成~

热点内容
内置存储交换位置 发布:2025-07-14 09:33:10 浏览:647
甲壳虫密码如何解锁 发布:2025-07-14 09:23:55 浏览:823
解压专家解压迅雷云盘 发布:2025-07-14 09:11:09 浏览:910
编程基础教学 发布:2025-07-14 09:09:48 浏览:94
电脑板能进入的手机版服务器 发布:2025-07-14 09:08:10 浏览:555
roblox电脑版服务器推荐 发布:2025-07-14 09:06:07 浏览:807
application缓存 发布:2025-07-14 09:01:56 浏览:345
安卓怎么看绑定地区 发布:2025-07-14 09:01:49 浏览:85
籽岷的生存服务器IP 发布:2025-07-14 08:51:06 浏览:419
我的世界搭建tcp服务器 发布:2025-07-14 08:42:55 浏览:660