當前位置:首頁 » 編程軟體 » 編程中積分

編程中積分

發布時間: 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 01:27:38 瀏覽:783
php開啟錯誤 發布:2025-07-14 01:16:49 瀏覽:998
esp資料庫 發布:2025-07-14 01:16:44 瀏覽:980
python查找文件路徑 發布:2025-07-14 01:16:03 瀏覽:514
phpapachetomcat 發布:2025-07-14 01:08:41 瀏覽:123
伺服器運維看什麼書 發布:2025-07-14 01:07:32 瀏覽:988
密碼器動態密碼怎麼弄 發布:2025-07-14 00:44:27 瀏覽:386
小米怎麼把視頻加密 發布:2025-07-14 00:42:59 瀏覽:406
在線申訴找回密碼根本什麼都沒有 發布:2025-07-14 00:41:22 瀏覽:306
拉新用什麼安卓手機可以 發布:2025-07-14 00:41:19 瀏覽:418