計(jì)算機(jī)輔助分析與設(shè)計(jì)(c語(yǔ)言 二分法牛頓迭代法求方程解 )_第1頁(yè)
計(jì)算機(jī)輔助分析與設(shè)計(jì)(c語(yǔ)言 二分法牛頓迭代法求方程解 )_第2頁(yè)
計(jì)算機(jī)輔助分析與設(shè)計(jì)(c語(yǔ)言 二分法牛頓迭代法求方程解 )_第3頁(yè)
計(jì)算機(jī)輔助分析與設(shè)計(jì)(c語(yǔ)言 二分法牛頓迭代法求方程解 )_第4頁(yè)
計(jì)算機(jī)輔助分析與設(shè)計(jì)(c語(yǔ)言 二分法牛頓迭代法求方程解 )_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)算機(jī)輔助分析與設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一:編程作業(yè)1:用二分法求方程 的一個(gè)正的近似解(精確到0.1)。程序:#include #include #define F(x (x*(x*(x-3*(x+1 /*宏定義F(x為方程式的左邊*/void main(int k=0;float a,b,c,m;printf("input a,b,c:"scanf("%f,%f,%f",&a,&b,&c; /*輸入a,b的值以及精確度c的值*/while(F(a*F(b>0 /*輸入的a,b的值直到滿足F(aF(b0為止*/printf(&qu

2、ot;input a,b again:"scanf("%f,%f",&a,&b;for(;F(a*F(b<=0;k+ /*二分法開(kāi)始求方程的根*/if(F(a*F(b=0 /*若F(aF(b=0,則方程的解在a,b兩者中,并找出其根*/if(F(a=0printf("A root of equation is:%f k=%dn",a,k;else printf("A root of equation is;%f k=%dn",b,k;break;else m=(a+b/2; /*取a,b的中點(diǎn)*/if(

3、fabs(a-b /* 若滿足精度要求,中點(diǎn)值為方程的根 */ printf("A root of equation is:%f k=%dn",m,k; break;else if(F(a*F(m>0 /*找出二分后區(qū)間兩端點(diǎn)值異號(hào)的區(qū)間,并賦給a,b*/a=m;else b=m;程序運(yùn)行結(jié)果如下圖編程作業(yè)2:用牛頓迭代法求方程 在附近的根(精確到0.001。程序:#include #include float f(float x /*定義函數(shù)f返回的值(其中f(x為方程式的左邊*/float y;y=(x*x*x-x-1/(3*x*x-1;return(y;void

4、 main(float x1,x2,x0,c;printf("input x0,c:"scanf("%f,%f",&x0,&c; /*輸入x0及精確度c的值*/x2=x0;do /*牛頓迭代法開(kāi)始求方程的根*/x1=x2;x2=x1-f(x1;while(fabs(f(x1>c; /*若不滿足精度要求執(zhí)行循環(huán),反之則得到方程的根就是x2*/printf("A root of equation is:%fn",x2;程序運(yùn)行結(jié)果如下圖:實(shí)驗(yàn)二:編程作業(yè)1:用梯形法計(jì)算定積分 ( 取 n=100。程序:#includ

5、e #include float f(float x /*定義函數(shù)f返回1/(1+*/float y;y=1/(x*x+1;return(y;void main(float a,b,h,F=0;int n,k;printf("Input a,b,n:"scanf("%f,%f,%d",&a,&b,&n; /*輸入積分上下限a,b及n的值*/F=(f(a+f(b/2.0;h=fabs(b-a/n; /*計(jì)算每一個(gè)小梯形的高度h*/for(k=1;k + /* 求 n 等分后所有小梯形上下底之和并減半 */ F+=f(a+k*h;F=

6、F*h;printf("The integral of 1/(1+x*x is:%fn",F;getch(;程序運(yùn)行結(jié)果如下圖:編程作業(yè)2:用拋物線法計(jì)算定積分 ( 取 n=100。程序:#include float f(float x /*定義函數(shù)f返回1/(1+*/float y;y=1/(1+x*x;return(y;void main( float a,b,h,F;int n,k;printf("input a,b,n:"scanf("%f,%f,%d",&a,&b,&n; /*輸入積分下上限a,b及n

7、的值*/h=(b-a/(4*n;F=f(a+f(b;for(k=0;k<(2*n;k+ /*求的和*/F+=4*f(2*k+1*h+a;/*求的和*/for(k=1;k<(2*n;k+ F+=2*f(2*k*h+a;F=F*h/3; printf("The integral of 1/(1+x*x is:%fn",F;getch(;程序運(yùn)行結(jié)果如下圖:實(shí)驗(yàn)三:編程作業(yè)1:用歐拉法求初值問(wèn)題 在處的近似值。程序:#include float f(float x,float y /*定義函數(shù)f返回y-(2x/y的值*/float z;z=y-(2*x/y;retur

8、n(z;void main(int i=0,N;float x0,y0,h,x,y;printf("input x0,y0,h,N:" scanf("%f,%f,%f,%d",&x0,&y0,&h,&N; /*輸入起始點(diǎn)x0、y0及步長(zhǎng)h、步數(shù)N的值*/for(;i /* 用歐拉法求出每步的 x 以及對(duì)應(yīng)的 y 的值 */ y=y0+f(x0,y0*h; /*用歐拉公式y(tǒng)=y0+hf(x0,y0求y的值*/x=x0+h;x0=x;y0=y;printf("n x=%4.2f, y=%f",x,y; /*

9、輸出運(yùn)算到第i+1步時(shí)x、y的值*/getch(;_程序運(yùn)行結(jié)果如下圖:編程作業(yè)2:用改進(jìn)歐拉法求初值問(wèn)題 在處的近似值。程序:#include float f(float x,float y /*定義函數(shù)f返回y-(2x/y的值*/float z;z=y-(2*x/y;return(z;void main(int i=0,N;float x0,y0,h,x1,y1;printf("ninput x0,y0,h,N:"scanf("%f,%f,%f,%d",&x0,&y0,&h,&N; /*輸入起始點(diǎn)x0、y0及步長(zhǎng)h、步數(shù)N的值*/for(;i /* 用改進(jìn)歐拉法求出每步的 x 以及對(duì)應(yīng)的 y 的值 */ x1=x0+h;y1=y0+f(x0,y0*h; /*求預(yù)報(bào)值y1=y0+hf(x0,y0的值*/y1=y0+

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論