版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
求定積分
1、用梯形公式計(jì)算面積的近似值。
一<b—a
面積、/⑷+"))
這樣計(jì)算面積誤差太大。
b-a
2
2、改進(jìn):將區(qū)間b-a劃分成2n等分。用變步長(zhǎng)的梯形
法,定義Tn為將積分區(qū)間n等分時(shí)求出的近似面積。
n=1時(shí),
b—a
丁—+…))
令"=b-a
二「
____T___72hh
+—2L于"k+—)
2/々=0/
昌H=1日寸
Txh'hx
T;=—+一于(a-------)
2
(i)(2)
3
(1)為按公式算出的面積的二分之一;
(2)為等分中線(xiàn)的函數(shù)值/在7+歷力與〃的乘積,得出
面積的二分之一。
當(dāng)n=2時(shí),
T2
/n
;2
rri2Thh
2,7一十;2”4+7)
2/k=0N
當(dāng)〃二1時(shí)
rri2
h2h23.
T;二q+?。?(。+?。?/("+二獷)]
2
⑶
5
(3)代表面積
解釋如下:將好區(qū)間分成兩段
0111
h=-h=-(b—Q)
22
積分面積用矩形acde~\~矩形場(chǎng)b來(lái)近似
h2
ac的長(zhǎng)度取/(a+—)
3
牙的長(zhǎng)度取/(〃+—/)
2
力23
這兩塊的面積之和為=%*"(。+—)+〃。+—〃?)]
再取一半就是
)2"1
一£/(4+(左+0?5)*『)
2k=o
3、用辛普生公式計(jì)算積分的近似值
1
/2n=-。('4K2n-Tn)>
當(dāng)I2n-In<£認(rèn)為達(dá)到了近似要求。
如未達(dá)此精度要求,則讓
n<------2%h<-------h/2
2x2
例:求定積分/=1-——Jdx
Jo1+x3
7
#include<stdio.h>〃預(yù)編譯命令
#include<math.h>〃預(yù)編譯命令,數(shù)學(xué)函數(shù)
doublef(doublex);〃定義被調(diào)用函數(shù)f
voidmain()〃主函數(shù)
〃主程序開(kāi)始
intk,n=l;〃聲明整型變量k,n,并初始化n
doublex,xl=0,x2=2;〃聲明雙精度變量x,和xLx2
doubles,h,tn,t2n,InJ2n;〃聲明計(jì)算中使用的中間變量
constdoubleeps=le-6;〃聲明雙精度變量eps作為閾值
//計(jì)算n=l時(shí)的tn和In,為便于編程
//分別將它們賦給t2n和I2n
h=x2-xl;
t2n=I2n=(h*(f(xl)+f(x2)))/2;
printf("第一次近似計(jì)算梯形面積值為
In=0;8
while(fabs(I2mJn)>=eps)//當(dāng)型循環(huán),精度未達(dá)要求則繼續(xù)
(〃循環(huán)體開(kāi)始,
//將上一次計(jì)算結(jié)果轉(zhuǎn)存入m和In
tn=t2n;
In=I2n;
〃計(jì)算k從0至If(xl+(k+0.5)*h)的和
s=0.0;力求和變量s清零
for(k=0;k<n;k=k+l)//循環(huán)求和
{、〃循環(huán)體開(kāi)始
x=xl+(k+0.5)*h;
s=s+f(x);
)〃循環(huán)體結(jié)束
//計(jì)算t2n和I2n
t2n=(tn+h*s)/2.0;
I2n=(4^t2n-tn)/3.0;9
〃更新n和h,用于下一次計(jì)算
n=2*n;
h=h/2;
}〃循環(huán)體結(jié)束
printf「積分值為%m11八,1211);//輸出結(jié)果
)〃主函數(shù)結(jié)束
doublef(doublex)//被調(diào)用函數(shù)f,用于計(jì)算積分項(xiàng)
{、〃函數(shù)體開(kāi)始▼
〃計(jì)算并返回積分項(xiàng)
return((exp(x)+x*x)/(l+x*x*x));
)〃函數(shù)體結(jié)束
運(yùn)行結(jié)果:第一次近似計(jì)算提醒面積值為2.265451
積分值為3.138948
while(fabs(I2mJn)>=eps)//當(dāng)型循環(huán),精度未達(dá)要求則繼續(xù)
(〃循環(huán)體開(kāi)始,
//將上一次計(jì)算結(jié)果轉(zhuǎn)存入m和In
tn=t2n;
In=I2n;
〃計(jì)算k從0至If(xl+(k+0.5)*h)的和
s=0.0;力求和變量s清零
for(k=0;k<n;k=k+l)//循環(huán)求和
{、〃循環(huán)體開(kāi)始
x=xl+(k+0.5)*h;
s=s+f(x);
)〃循環(huán)體結(jié)束
//計(jì)算t2n和I2n
t2n=(tn+h*s)/2.0;
I2n=(4^t2n-tn)/3.0;11
隨機(jī)數(shù)
說(shuō)明:
1、要產(chǎn)生隨機(jī)數(shù)需要在預(yù)編譯中加入庫(kù)函數(shù)
#include<stdlib.h>
2、rand()是產(chǎn)生隨機(jī)數(shù)的函數(shù),它可生成0至32767的
整數(shù)\
3、最大隨機(jī)數(shù)為RAND_MAX,值為32767
4、產(chǎn)生隨機(jī)數(shù)需要設(shè)置種子
srand((unsigned)time(NULL));
因?yàn)闀r(shí)間每分每秒不同,第一個(gè)隨機(jī)數(shù)就不會(huì)固
定。你可以做試驗(yàn),如去掉這條,產(chǎn)生十個(gè)隨機(jī)數(shù),
每次都會(huì)是一樣的?!?/p>
產(chǎn)生的隨機(jī)數(shù):
41
18467
6334
26500
11478\
29358
26962
24464
加上這條之后,你再觀察,每一次出的十個(gè)數(shù)都不同。
13
下面的程序是產(chǎn)生十個(gè)小數(shù)(隨機(jī)函數(shù)4.c)
#include<stdio.h>〃預(yù)編譯命令
#include<math.h>〃預(yù)編譯命令
#include<stdlib.h>〃預(yù)編譯命令
voidmain(void)〃主函數(shù)
(〃主函數(shù)開(kāi)始
intk;〃定義整型變量k
srand((unsigned)time(NULL));〃設(shè)置
for(k=0;k<10;k=k+l)//循環(huán)
(
〃輸出隨機(jī)小數(shù)
printfC6%^nf\(float)rand()/RANDMAX);
力輸出最大隨機(jī)數(shù)
printf(n最大隨機(jī)數(shù)為%d\iT,RAND_MAX);
)〃主函數(shù)結(jié)束
說(shuō)明
1、用rand()/RAND_MAX來(lái)產(chǎn)生大于0而小于1的
小數(shù)。
2、因?yàn)閞and()是整型數(shù),RAND_MAX是整型常數(shù),
兩者相除,如不作特殊處理得不出小數(shù),只能為0。
因?yàn)楸怀龜?shù)小于除數(shù)。因此需要強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型,
在除式前加(float),即
(float)rand()/RANDMAX
偽隨機(jī)數(shù)的應(yīng)用——蒙特卡羅法求幾何面積
例:求九的近似值。
如右圖,正方形的面積A=l;1/4圓的面積B=TT/4。我們
想象有一個(gè)容器在正方形中夾有一個(gè)極薄的圓弧隔板。
下小雨時(shí)搬至屋外,經(jīng)一定時(shí)間后,稱(chēng)1/4圓的容器內(nèi)的
水重C,與作為一個(gè)整體的正方形中的水重D。C與D之
比應(yīng)該等于B與A之比,、t
4DD16
我們讓計(jì)算機(jī)產(chǎn)生偽隨機(jī)數(shù)X和y,讓x的值的范圍在0?
1之間;讓y的值的范圍也在0?1之間,模擬雨點(diǎn)落在正
方形中,當(dāng)然會(huì)有的雨點(diǎn)落在1/4圓中,數(shù)以百萬(wàn)計(jì)雨點(diǎn)
可以累計(jì)得到C和D,從而上述公式算出江的近似值。這
里關(guān)鍵是落入扇形區(qū)的判據(jù):
如果滿(mǎn)足了上述條件,則讓C=C+L
參考程序見(jiàn)“隨機(jī)函數(shù)Lc”
17
#include<stdio.h>〃預(yù)編譯命令
#include<math.h>〃預(yù)編譯命令
#include<stdlib.h>〃預(yù)編譯命令
voidmain(void)〃主函數(shù)
〃主函數(shù)開(kāi)始
longk,c=0,d=0;〃定義長(zhǎng)整型變量
floatpai,x,y;〃定義浮點(diǎn)類(lèi)型變量
srand((unsigned)time(NULL));//設(shè)置
for(k=l;k<=100000000;k=k+l)//循環(huán)
//循環(huán)體開(kāi)始
d=d+l;//累加正方形中落入的一個(gè)雨點(diǎn)
x=(float)rand()/32767;〃雨點(diǎn)在x方向的位置
y=(float)rand()/32767;〃雨點(diǎn)在y方向的位置
if(sqrt(x*x+y*y)v=l)
c=c+l;//累加扇形中落入的一個(gè)雨
點(diǎn)
pai=4.0^(float)c/d;//計(jì)算pai的值
printf(npai=%f\nf\pai);//輸出pai的值18
???,,―/―L
下面可演化為計(jì)算圖形的面積。如圖所示計(jì)算有陰影
線(xiàn)的圖形的面積,乍看似乎有些難,但仔細(xì)分析即可
在上面程序的基礎(chǔ)上來(lái)做了。
從思路上考+y2
慮落在陰影這塊面
積上的雨點(diǎn)數(shù)g與+y2=i
落在正方形整體上
的雨點(diǎn)數(shù)d的比就
是這塊面積s的近
似值。
1
19
此題的關(guān)鍵是如何判斷雨點(diǎn)是落在陰影線(xiàn)的區(qū)域內(nèi)。這
就要用到解析幾何的知識(shí):對(duì)于以原點(diǎn)x=0,y=0為圓心,
半徑為1的圓弧,陰影線(xiàn)中的每個(gè)點(diǎn)應(yīng)滿(mǎn)足
I2+/>1〈公式1〉
對(duì)于以x=Ly=0為圓心的圓弧,陰影線(xiàn)中的每個(gè)點(diǎn)應(yīng)滿(mǎn)
d(X-if+J>](公式2>
當(dāng)然這個(gè)條件在產(chǎn)生隨機(jī)數(shù)時(shí)就已經(jīng)保證了,
故可以不再考慮了。
因此,要同時(shí)滿(mǎn)足公式1和公式2,雨點(diǎn)才能落入陰影線(xiàn)
區(qū)域,語(yǔ)句2。
if((sqrt(x^x+y^y)>l)&&(sqrt((x-l)^(x-l)+y^y)>l))
g=g+l;
就是依據(jù)上述的思路。
為了比較所得結(jié)果是否有效,程序中給出了s的精確值,
這個(gè)值是用幾何的解法計(jì)算出的,見(jiàn)圖
兀73兀
A+B+A=——+^―+——
12412
s=1-(A+B+A)30°
21
參考程序如下(隨機(jī)函數(shù)6.c)
#include<stdio.h>〃預(yù)編譯命令
#include<math.h>//預(yù)編譯命令
#include<stdlib.h>〃預(yù)編譯命令
voidmain(void)〃主函數(shù)
(〃主函數(shù)開(kāi)始
longk,d=0,g=0;〃定義長(zhǎng)整型變量
floats漢y;〃定義浮點(diǎn)類(lèi)型變量
srand((unsigned)time(NULL));〃設(shè)置
22
for(k=l;k<=10000000;k=k+l)//循環(huán)
{〃循環(huán)體開(kāi)始
d=d+l;//累加正方形中落入的一個(gè)雨點(diǎn)
x=(float)rand()/32767;//雨點(diǎn)在x方向的位置
y=(float)rand()/32767;//雨點(diǎn)在y方向的位置
if((sqrt(x*x+y*y)>l)&&(sqrt((x-l)*(x-l)+ywy)>l))
g=g+l;//累加陰影畝積中落入%勺一個(gè)布點(diǎn)
}、//循環(huán)體結(jié)束
s=(float)g/d;//計(jì)算s的值
printf(ns=%Rn",s);//輸出s的值
〃輸出s的精確值
printfjs的精確值為%f\nf\1.0-(3.14159/6.0+1.73205/4.0));
整數(shù)分拆
題目:有一個(gè)整數(shù)n,將n分解成若干個(gè)整數(shù)之和,問(wèn)如
何分解能使這些數(shù)的乘積最大,輸出這個(gè)乘積m。
分析:分解出的數(shù)既不是越多越好,也不是越大越好。
例n=12
(1)分解為1+1+1+…+1,12個(gè)
m=1*1*1???
(2)分角星為2+2+.??+2,6個(gè)2
m=26=64
24
(3)分解為3+3+3+3,4個(gè)3
m=34=81
(4)分解為4+4+4,3個(gè)4
m=43=64
(5)分解為6+6,2個(gè)6
m=62=36
(6)分角星為5+7
m=5*7=35
(7)分角翠為4+8
=4*8=3225
顯然,3最好。
算法:見(jiàn)與或結(jié)點(diǎn)圖。
26
圖的說(shuō)明:
1.當(dāng)n可以被3整除時(shí),就讓n分解成k個(gè)3,k=n13。
之后,調(diào)用一個(gè)算3的k次方的函數(shù)p(k),輸出p(k)。
2.當(dāng)n除3余1時(shí),可分解為1,3,3,…,3。從使乘積最大
的角度出發(fā),我們不希望分解出1來(lái),這時(shí),寧可讓1
與其中的一個(gè)3合并,為4。讓左=(〃—4)/3,接著
調(diào)用p(k),但輸出時(shí)再將原來(lái)減去的4當(dāng)作一個(gè)乘數(shù)
乘進(jìn)來(lái),即輸出4*p(k)。▼
3.當(dāng)n除3余2時(shí),可分解為2,3,3,…,3??梢匝赜蒙显V
思路讓左=(〃-2)/3,求p(k)。最后輸出時(shí)將2乘
入,即輸出2*p(k)。
4.這個(gè)程序我們采用多分支選擇語(yǔ)句,格式為“
switch(表達(dá)式)
(
case常量表達(dá)式1:{語(yǔ)句塊1;}
case常量表達(dá)式2:{語(yǔ)句塊2;}
case常量表達(dá)式n:{語(yǔ)句塊n;}
}
switch后面括弧中的表達(dá)式的值與case后面的常量
表達(dá)式的值相等時(shí),就執(zhí)行其后的語(yǔ)句。比如
28
switch(a)
case0{b=1;break;}
case1{b=10;break;}
case2{b=100;break;}
case3{b=1000;break;}
case4{b=10000;}
實(shí)踐上完成的任務(wù)是
29
1a=0
10—■1
b=\10Qa=2
1000a=3
10000,q=4
注音-
不可以沒(méi)有break。如果沒(méi)有的話(huà),不管a為0,還
是為1,為2或?yàn)?,b的值均為10000。
30
參考程序如下(n的分解.c)
#include<stdio.h>〃預(yù)編譯命令
longp(int);〃聲明函數(shù)p為長(zhǎng)整型,
//形參為整型
voidmain()//主函數(shù)
(//主程序開(kāi)始
intn,k;〃整型變量
longm;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土方貨車(chē)轉(zhuǎn)讓合同范例
- 陜西能源職業(yè)技術(shù)學(xué)院《模具設(shè)計(jì)與制造》2023-2024學(xué)年第一學(xué)期期末試卷
- 房屋租賃網(wǎng)絡(luò)合同范例
- 定制家具對(duì)公合同范例
- 招生顧問(wèn)老師合同范例
- 服務(wù)升級(jí)項(xiàng)目合同范例
- 木質(zhì)臺(tái)階租賃合同范例
- 大米購(gòu)銷(xiāo)合同范例
- 鞋子工廠(chǎng)供貨合同范例
- 2024年甲乙雙方關(guān)于新能源發(fā)電項(xiàng)目投資建設(shè)的合同
- 質(zhì)量手冊(cè)培訓(xùn)課件
- 公路工程檢測(cè)技術(shù) 課件 任務(wù)2.1無(wú)機(jī)結(jié)合料穩(wěn)定材料檢測(cè)
- 曲阜師范大學(xué)教育經(jīng)濟(jì)學(xué)期末復(fù)習(xí)題
- 國(guó)開(kāi)01880-組織行為學(xué)機(jī)考復(fù)習(xí)資料
- 混合式教學(xué)模式
- 2023年《思想道德與法治》期末考試復(fù)習(xí)題庫(kù)(帶答案)
- 籃球交叉步持球突破教學(xué)設(shè)計(jì)-高二下學(xué)期體育與健康人教版
- 八年級(jí)上冊(cè)生物天津生物期末試卷測(cè)試卷(含答案解析)
- 契訶夫《苦惱》課件
- 服從崗位調(diào)配申請(qǐng)書(shū)
- 以甘蔗為原料年產(chǎn)10萬(wàn)噸生物乙醇工廠(chǎng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論