C語言 例題 4-9-1 利用 辛普森理則 計算 雙重積分 f(x,y)= x*x*y 在[0 , 1] dy 與 [0,2] dx 的定積分
/*
例題 4-9 利用 辛普森理則 計算 雙重積分 f(x,y)= x*x*y
在[0 , 1] dy 與 [0,2] dx 的定積分
c=0 , d=1 , a=0 , b=2
# Based on Simpson's Rule to compute the double integral.
*/
#include <stdio.h>
#include <math.h>
#define F(x,y) (x*x*y)
void gy(int);
double x[50],y[50][50],gg[50],hy[50];
double C(double x)
{
return 0.0;
}
double D(double x)
{
return 1.0;
}
void main()
{
int i,j,m,n;
double a,b,hx,sum1=0.0,sum2=0.0,sn;
a=0;
b=2;
n=2;
m=n/2;
hx=(b-a)/n;
for(i=0;i<=n;i++)
{
x[i]=a+i*hx;
hy[i]=( D(x[i] )-C( x[i] )) / n;
printf("%1.4lf %1.4lf %1.4lf %1d -->", hy[i], D(x[i]), C(x[i]) ,n );
printf("x[%1d]=%1.4lf , hy[%1d]=%1.4lf \n",i,x[i],i,hy[i]);
for(j=0;j<=n;j++)
{
y[i][j]=C(x[i])+ j*hy[i];
printf("y[%1d,%1d]=%1.4lf \n",i,j,y[i][j]);
}
}
gy(n);
for(i=1;i<=2*m-1;i++)
{
if(i%2==0)
sum2=sum2+gg[i];
else
sum1=sum1+gg[i];
}
sn=(hx/3.0)*(gg[0]+gg[n]+2.0*sum2+4.0*sum1);
printf("S%d=%lf\n",n,sn);
return;
}
//==========================================
void gy(int n)
{
int i,j,m;
double sum1=0.0 , sum2=0.0;
m=n/2;
for(i=0;i<=n;i++)
{
for(j=1;j<=2*m-1;j++)
{
if(j%2==0)
sum2=sum2+ F(x[i],y[i][j]);
else
sum1=sum1+ F(x[i],y[i][j]);
}
gg[i]=(hy[i]/3.0)*(F(x[i],y[i][0])+F(x[i],y[i][n])+2.0*sum2+4.0*sum1);
printf("%1.4lf %1.4lf %1.4lf %1.4lf \t", F(x[i],y[i][0]) , F(x[i],y[i][n]) ,2.0*sum2 ,4.0*sum1);
sum1=0.0;
sum2=0.0;
printf("gg[%1d]=%1.4lf \n",i,gg[i]);
}
return;
}
//==========================================
輸出畫面
0.5000 1.0000 0.0000 2 -->x[0]=0.0000 , hy[0]=0.5000
y[0,0]=0.0000
y[0,1]=0.5000
y[0,2]=1.0000
0.5000 1.0000 0.0000 2 -->x[1]=1.0000 , hy[1]=0.5000
y[1,0]=0.0000
y[1,1]=0.5000
y[1,2]=1.0000
0.5000 1.0000 0.0000 2 -->x[2]=2.0000 , hy[2]=0.5000
y[2,0]=0.0000
y[2,1]=0.5000
y[2,2]=1.0000
0.0000 0.0000 0.0000 0.0000 gg[0]=0.0000
0.0000 1.0000 0.0000 2.0000 gg[1]=0.5000
0.0000 4.0000 0.0000 8.0000 gg[2]=2.0000
S2=1.333333
Command exited with non-zero status 12
訂閱:
張貼留言 (Atom)
2024_09 作業3 以Node-Red 為主
2024_09 作業3 (以Node-Red 為主 Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker 2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...
-
python pip 不是内部或外部命令 -- 解決方法 要安裝 Pyqt5 1. 首先,開啟命令提示字元。 2. 輸入 pip3 install pyqt5 好像不能執行 ! ! 錯誤顯示 : ‘ pip3 ’ 不是內部或外部命令、可執行的程式或批...
-
課程講義 下載 11/20 1) PPT 下載 + 程式下載 http://www.mediafire.com/file/cru4py7e8pptfda/106%E5%8B%A4%E7%9B%8A2-1.rar 11/27 2) PPT 下載...
-
• 認 識 PreFix、InFix、PostFix PreFix(前序式):* + 1 2 + 3 4 InFix(中序式): (1+2)*(3+4) PostFix(後序式):1 2 + 3 4 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言