全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:716
推到 Plurk!
推到 Facebook!

請教各位大大關於數值解的程式

尚未結案
calane
一般會員


發表:1
回覆:0
積分:0
註冊:2005-03-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-07 08:44:45 IP:218.168.xxx.xxx 未訂閱
請教各位大大:  程式這樣寫不知道對不對,在sin函數的積分運算上,十二萬分謝謝!  可以說,是算一條很複雜的式子,簡單講就是一個定積分從a積到b 裏面的f(x,y)=sin(x)*sin(y),然後用數值解,是選梯形法 問題卡在迴圈上,不知道怎樣寫才對!大大高手們請幫幫小弟的忙啊!    
#include  
#include <math.h> 
#define f(x,y) (sqrt((1 0.545*pow(sin(x),2)*pow(sin(y),2) 2.65*pow(sin(y),2) 0.545*2.65*pow(sin(x),4)*pow(sin(y),2)))/(sqrt(1-pow(sin(x),2)*pow(sin(y),2)) 2.65*pow(sin(x),2)*pow(sin(y),2)-2.65*pow(sin(x),4)*pow(sin(y),4)))     main() 
{ 
FILE *fp; 
fp=fopen("text.dat","w");     double x; //angle 
double y; //angle 
double n; 
n=50; //cut numbers     double rd=3.141596/180.0; //rd=0.017453311     double xf,yf; 
xf=x*rd; 
yf=y*rd;     double a,b; //distance 
a=0.0; 
b=90.0; //b=90*rd=90*0.017453311=1.57079799     double h,fo,fe; 
h=(b-a/2*n); //between     double k,s; 
xf=a; 
s=0;     for(yf=1;yf<=90;yf=yf  ) 
{ 
for(k=1;k<=2*n-1;k=k  )//trapezoidal rule 
{ 
xf=xf h; 
s=s f(xf,yf); 
printf("y=%lf s=%lf xf=%lf\n", yf, s, xf); 
fprintf(fp,"yf=%lf s=%lf xf=%lf\n", yf, s, xf); 
} 
}     double sum,E,ec; 
double pi=3.141596; 
ec=1; 
sum=h*((f(a,yf) f(b,yf))/2 s);     E=ec*2/pi*sum; 
printf("x=%lf E=%lf\n",xf,E);     fclose(fp); 
} 
發表人 - calane 於 2005/04/07 09:19:11 發表人 - calane 於 2005/04/08 00:36:57
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-07 09:09:43 IP:210.68.xxx.xxx 未訂閱
您好: PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=48259">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=48259
系統時間:2024-05-19 13:04:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!