版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算方法實(shí)驗(yàn)報告班級: 學(xué)號: 姓名: 成績:1 舍入誤差及穩(wěn)定性一、實(shí)驗(yàn)?zāi)康模?)通過上機(jī)編程,復(fù)習(xí)鞏固以前所學(xué)程序設(shè)計語言及上機(jī)操作指令;(2)通過上機(jī)計算,了解舍入誤差所引起的數(shù)值不穩(wěn)定性二、實(shí)驗(yàn)內(nèi)容1、用兩種不同的順序計算,分析其誤差的變化2、已知連分?jǐn)?shù),利用下面的算法計算: 寫一程序,讀入計算并打印3、給出一個有效的算法和一個無效的算法計算積分 4、設(shè),已知其精確值為(1)編制按從大到小的順序計算的程序(2)編制按從小到大的順序計算的程序(3)按兩種順序分別計算并指出有效位數(shù)三、實(shí)驗(yàn)步驟、程序設(shè)計、實(shí)驗(yàn)結(jié)果及分析1、用兩種不同的順序計算,分析其誤差的變化(1)實(shí)驗(yàn)步驟:分別從1100
2、00和從100001兩種順序進(jìn)行計算,應(yīng)包含的頭文件有stdio.h和math.h(2)程序設(shè)計:#include#includevoid main() float n=0.0; int i; float m=0.0; int j; for(i=1;i=1;j-) /逆序計算 m=m+1.0/(j*j); printf(%-7f,m); printf(n);(3)實(shí)驗(yàn)結(jié)果:程序運(yùn)行結(jié)果:2、已知連分?jǐn)?shù),計算:(1)實(shí)驗(yàn)步驟:利用 ,計算(2)程序設(shè)計#includevoid main()float f,b100,a100,d100;int i,n;printf(n=);scanf(%d,&n)
3、;for(i=0;i=0;i-)dn=bn;di=bi+ai+1/di+1;f=d0;printf(%f,f);(3)實(shí)驗(yàn)結(jié)果程序運(yùn)行結(jié)果:3、給出一個有效的算法和一個無效的算法計算積分 (1)實(shí)驗(yàn)步驟利用C語言編寫程序,分別使用數(shù)值穩(wěn)定的和數(shù)值不穩(wěn)定的計算公式所建立的遞推公式進(jìn)行計算。(2)程序設(shè)計%無效的算法%#include#includevoid main()double y_0=(1/11+1/55)/2,y_1;int n=10;printf(y10=%-20f,y_0);while (1)y_1=4/n-16*y_0;printf(y%d=%-20f,n-1,y_1);if (n
4、=1) printf(n );y_0=y_1;n-;if (n%3=0) printf(n); 程序運(yùn)行結(jié)果:%有效的算法%#include#includevoid main()double y_0=log(5),y_1;int n=1;printf(y0=%-20f,y_0);while (1)y_1=(1/4)*(1/n-(1/4)*y_0);printf(y%d=%-20f,n,y_1);if (n=10) break;y_0=y_1;n+;if (n%2=0) printf(n);getch();程序運(yùn)行結(jié)果:4、設(shè),已知其精確值為(1)實(shí)驗(yàn)步驟先編程按從大到小的順序計算的程序,再編程
5、按從小到大的順序計算的程序,然后按兩種順序分別計算。(2)程序設(shè)計1.從大到小#include#include#includeusing namespace std;void main()float n=0.0;int i;int N;coutplease input NN;for(i=N;i1;i-)n=n+1.0/(i*i-1);N=N-1;printf(%-100f,n);printf(n);程序運(yùn)行結(jié)果:N=20時N=5時N=1530時2.從小到大#include#include#includeusing namespace std;void main()float n=0.0;int
6、 i;int N;coutplease input NN;for(i=2;i=N;i+)n=n+1.0/(i*i-1);printf(%-100f,n);printf(n);程序運(yùn)行結(jié)果:N=20時N=5時N=1530時(3)用從小到大的C語言算法計算S1000,S10000,S30000,結(jié)果如下: N=1000時:N=10000時:N=30000時: 用從大到小順序的C語言算法分別計算S1000,S10000,S30000,結(jié)果如下: N=1000時:N=10000時:N=30000時:四、總結(jié)通過這次上機(jī),學(xué)習(xí)了解了舍入誤差在不同算法時對結(jié)果的影響不同,穩(wěn)定的算法才能獲得正確的結(jié)果。2
7、方程求根一、實(shí)驗(yàn)?zāi)康模?)通過對二分法與牛頓迭代法做編程練習(xí)和上機(jī)運(yùn)算,進(jìn)一步體會二分法和牛頓法的不同。(2)編寫割線迭代法的程序,求非線性方程的解,并與牛頓迭代法作比較。二、實(shí)驗(yàn)內(nèi)容1、用牛頓法求下列方程的根(1)(2)(3)2、編寫割線法程序求解第一問的方程三、實(shí)驗(yàn)步驟、程序設(shè)計、實(shí)驗(yàn)結(jié)果及分析1、牛頓法(1)實(shí)驗(yàn)步驟通過定義牛頓法求方程的子函數(shù),用main函數(shù)調(diào)用子函數(shù)求根(2)流程圖定義N,eps,eta計算f(x0),f1(x0)k=0,int x1,d輸入迭代初值x1=x0-f(x0)/f(1x0)開始結(jié)束輸出迭代發(fā)散k=k+1|x1|N | |f1(x1)|eps?輸出 x(k)
8、=x0|d|eta?輸出方程的根為x1x0=x1YNY(3)程序設(shè)計1.#include#include#includeusing namespace std;#define N 100#define esp 1e-6#define eta 1e-8float Newton(float(*f)(float),float(*f1)(float),float x0)float x1,d;int k=0;dox1=x0-(*f)(x0)/(*f1)(x0);if(k+N| fabs(*f1)(x1)esp)printf(n Newton迭代發(fā)散);break;d=fabs(x1)esp&fabs(*
9、f)(x1)eta);return x1;float f(float x)return (x*x-exp(x);float f1(float x)return (2*x-exp(x);void main()float x0,y0;printf(請輸入迭代初值x0n);scanf(%f,&x0);y0=Newton(f,f1,x0);printf(方程的根為:%fn,y0);(3)實(shí)驗(yàn)結(jié)果及分析2. #include#include#define N 100#define eps 1e-6#define eta 1e-8float Newton(float(*f)(float),float(*f
10、1)(float),float x0)float x1,d;int k=0;dox1=x0-(*f)(x0)/(*f1)(x0);if (k+N|fabs(*f1)(x1)eps)printf(n Newtom 迭代發(fā)散);break;d=fabs(x1)eps&fabs(*f)(x1)eta);return x1;float f(float x)return x*exp(x)-1;float f1(float x)return x*exp(x)+exp(x);void main()float x0,y0;printf(請輸入迭代初值x0n);scanf(%f,&x0);printf(x(0)
11、=%fn,x0);y0 = Newton(f,f1,x0);printf(方程的根為%fn,y0);3. #include#include#define N 100#define eps 1e-6#define eta 1e-8float Newton(float(*f)(float),float(*f1)(float),float x0)float x1,d;int k=0;dox1=x0-(*f)(x0)/(*f1)(x0);if (k+N|fabs(*f1)(x1)eps)printf(n Newtom 迭代發(fā)散);break;d=fabs(x1)eps&fabs(*f)(x1)eta)
12、;return x1;float f(float x)return log10(x)+x-2;float f1(float x)return 1/x+1;void main()float x0,y0;printf(請輸入迭代初值x0n);scanf(%f,&x0);printf(x(0)=%fn,x0);y0 = Newton(f,f1,x0);printf(方程的根為%fn,y0);2、割線法結(jié)束d=x2-x1輸出x2=x1開始定義 f(x) 迭代次數(shù)N eps 精確度etak=0輸入迭代初值x0 x1|f(x2)|N?看、abs(x2)eps&fabs(f(x2)etax2=x1-f(x)
13、f(x)=f(x1)*(x1-x0)/(f (x1)-f(x0)迭代發(fā)散YNNYYN(1)程序設(shè)計#include#includede#include#includeusing namespace std;double y1000;double x1000;double func(double x) return x*x-exp(x);int main() int n=100; x0=1; x1=2; y0=func(x0); y1=func(x1); for (int i=1;in;+i) if (yi=yi-1) yn=yi; xn=xi; break; xi+1=xi-yi/(yi-yi
14、-1)*(xi-xi-1); yi+1=func(xi+1); printf(%fn,xn);return 0;(3)實(shí)驗(yàn)結(jié)果及分析第一題第二題第三題:四、總結(jié)了解和學(xué)習(xí)了二分法和牛頓迭代法的思想以及程序設(shè)計的方法,比較了迭代法和牛頓法的特點(diǎn):牛頓法收斂速度較快,但對初值選取要求較高;割線法計算量少。3 線性方程組數(shù)值解法一、實(shí)驗(yàn)?zāi)康模?)熟悉求解線性方程組的有關(guān)理論和方法;(2)會編制列主元消去法,LU分解法,雅可比及高斯-賽德爾迭代法的程序;(3)通過實(shí)際計算,進(jìn)一步了解各種方法的優(yōu)缺點(diǎn),選擇合適的數(shù)值方法。二、實(shí)驗(yàn)內(nèi)容1、用列主元消去法解方程組(1)x1+x2+3x4=42x1+x2-x
15、3+x4=13x1-x2-x3+3x4=-3-x1+2x2+3x3-x4=4(2)x1-x2+2x3-x4=-82x1-2x2+3x3-3x4=-20x1+x2+x3=-2x1-x2+4x3+3x4=42、用LU分解法解方程組A= , b=44-2-23、編寫用改進(jìn)的平方根法解方程組Ax=b的程序,并解下列方程組:(1)A=b= (-1,0,0,0,0,0)T(2)A= b=(2.00,2.00,12.00,12.00,2.00,2.00,2.00,2.00)T4、編寫用追趕法解三對角線性方程組的程序,并解下列方程組:(1)2x1-x2=5-x1+2x2-x3=-12-x2+2x3-x4=11
16、-x3+2x4=-1(2)Ax=b,其中A10*10=b10*1=-27-15-15-15-15-15-15-15-15-155、分別用雅可比迭代法與高斯-塞德爾迭代法解下列方程組:(1)10x1-x2+2x3=-118x2-x3+3x4=-112x1-x2+10x3=6-x1+3x2-x3+11x4=25(2)RI=V,其中R=V=(-15,27,-23,0,-20,12,-7,7,-10)T三、實(shí)驗(yàn)步驟、程序設(shè)計、實(shí)驗(yàn)結(jié)果及分析1、用列主元消去法解方程組流程圖:3.1列主元消去法流程圖:交換A中r、k兩行aij=aij*akj/akki=k+1,nj=k+1,n+1xk=(ak,n+1-a
17、kj*xj)/akkj=k+1,k+2nk=n,n-1,2,1kk)ark=0?輸入A(增廣矩陣)開始NoK=1Yes輸出奇異標(biāo)志YesNo(1)程序設(shè)計#include#includevoid ColPivot(float*,int,float);void ColPivot(float*c,int n,float x)int i,j,t,k;float p;for(i=0;i=n-2;i+)k=i;for(j=i+1;j(fabs(*(c+k*(n+1)+i)k=j;if(k!=i)for(j=i;j=n;j+)p=*(c+i*(n+1)+j);*(c+i*(n+1)+j)=*(c+k*(n
18、+1)+j);*(c+k*(n+1)+j)=p;for(j=i+1;j=n-1;j+)p=(*(c+j*(n+1)+i)/(*(c+i*(n+1)+i);for(t=i;t=0;i-)for(j=n-1;j=i+1;j-)(*(c+i*(n+1)+n)-=xj*(*(c+i*(n+1)+j);xi=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i);void main()int i;float x4;float c45=1,1,0,3,4,2,1,-1,1,1,3,-1,-1,3,-3,-1,2,3,-1,4;ColPivot(c0,4,x);for(i=0;i=3;i+)print
19、f(x%d=%fn,i,xi);(2)實(shí)驗(yàn)結(jié)果及分析 (1)題(2)題程序同(1),只需把c45改為1,-1,2,-1,-8,2,-2,3,-3,-20,1,1,1,0,-2,1,-1,4,3,4即可運(yùn)行結(jié)果為:2、用LU分解法解方程組流程圖:根據(jù)公式計算第一行(Ui)和第一列元素(Li)開始寫出方程組的增廣矩陣?yán)玫玫経i和Li和A根據(jù)公式計算第2行第2列元素.直到計算出所有的元素將系數(shù)矩陣分解得到相應(yīng)的三角方程組用代回法求解結(jié)束(1)程序設(shè)計#includevoid main()float x4;int i;float a45=48,-24,0,-12,4, -24,24,12,12,4,
20、 0,6,20,2,-2, -6,6,2,16;void DirectLU(float*,int,float x);DirectLU(a0,4,x);for(i=0;i=3;i+) printf(x%d=%fn,i,xi);void DirectLU(float*u,int n,float x)int i,r,k;for(r=0;r=n-1;r+)for(i=r;i=n;i+)for(k=0;k=r-1;k+)*(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i);for(i=r+1;i=n-1;i+)for(k=0;k=0;i-)for(r=n-1;r=
21、i+1;r-)*(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*xr;xi=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i);3.用改進(jìn)平方根法解方程組Ax=b流程圖:開始是正定矩陣嗎?U1i=a1i;li1=ai1/a11;Lij=uji/ujj;Uki=aki -;無法用改進(jìn)平方根法noyes列出LU分解的緊湊格式利用緊湊格式求解結(jié)束(1)用matlab編程的到如下結(jié)果:代碼: a=0.5 -0.5 0 0 0 0;-0.5 1.5 -0.5 -0.25 0.25 0;0 -0.5 1.5 0.25 -0.25 0;0 -0.25 0.25 1.5 -0.5 0;0
22、 0.25 -0.25 -0.5 1.5 -0.5;0 0 0 0 -0.5 0.5; b=-1 0 0 0 0 0 ; b/aans = -3.2527 -1.2527 -0.3736 -0.0879 0.1758 0.1758結(jié)果X1=-3.2527 X2=-1.2527 X3=-0.3736 X4=-0.0879 X5=0.1758 X6=0.1758(2)代碼: a=1.35 0.35 2 2 -0.35 -0.35 -1 2;0.35 1.35 2 -1 -0.35 -0.35 2 2 ;2 2 1.35 -0.35 1 2 -0.35 0.35;2 -1 -0.35 1.35 2
23、2 0.35 -0.35;-0.35 -0.35 1 2 1.35 0.35 2 2 ;-0.35 -0.35 2 2 0.35 1.35 2 -1;-1 2 -0.35 0.35 2 2 1.35 -0.35;2 2 0.35 -0.35 2 -1 -0.35 1.35b=2 2 12 12 2 2 2 2 ;b/aa = 1.3500 0.3500 2.0000 2.0000 -0.3500 -0.3500 -1.0000 2.0000 0.3500 1.3500 2.0000 -1.0000 -0.3500 -0.3500 2.0000 2.0000 2.0000 2.0000 1.35
24、00 -0.3500 1.0000 2.0000 -0.3500 0.3500 2.0000 -1.0000 -0.3500 1.3500 2.0000 2.0000 0.3500 -0.3500 -0.3500 -0.3500 1.0000 2.0000 1.3500 0.3500 2.0000 2.0000 -0.3500 -0.3500 2.0000 2.0000 0.3500 1.3500 2.0000 -1.0000 -1.0000 2.0000 -0.3500 0.3500 2.0000 2.0000 1.3500 -0.3500 2.0000 2.0000 0.3500 -0.3
25、500 2.0000 -1.0000 -0.3500 1.3500ans = 1.4167 -2.3333 2.0000 -2.3333 2.0000 3.7500 -1.0833 1.2500結(jié)果:X1=1.4167 X2=-2.3333 X3=2.0000 X4=-2.3333 X5=2.0000 X6=3.7500 X5=-1.0833 X6=1.25004用追趕法解三對角線性方程組流程圖:r=r+1N定義數(shù)組x10和變量i輸入10*11的矩陣ai=9?k=0定義數(shù)組x,u,n ,i,r,kk=k+1r=0r=n-1?i=ri=n?i=0 k=r?輸出xii=i+1*(u+r*(n+1)
26、+i)=*(u+r*(n+1)+k)*(u+k*(k(n+1)+i)結(jié)束YNYYi=i+1NYi=r+1Ni=n?k=0k=r?*(u+i*(n+1)+r)=*(n+r*(n+1)+k)*(u+k*(k(n+1)+r)*(u+i*(n+1)+r)/=*(u+r*(n+1)+r);YYk=k+1i=i+1開始(1)程序設(shè)計:#includevoid main()float x5;int i;float a45=2,-1,0,0,5, -1,-2,-1,0,-12, 0,-1,2,-1,11, 0,0,-1,2,-1;void direct(float*,int,float);direct(a0,
27、4,x);for(i=0;i=4;i+) printf(x%d=%fn,i,xi);void direct(float*u,int n,float x)int i,r,k;for(r=0;r=n-1;r+)for(i=r;i=n;i+)for(k=0;k=r-1;k+)*(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i);for(i=r+1;i=n-1;i+)for(k=0;k=0;i-)for(r=n-1;r=i+1;r-)*(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*xr;xi=*(u+i*(n+1)+n)/(*(u+i*(n+1)+
28、i);(2)運(yùn)行結(jié)果:5.分別用雅克比迭代法與高斯賽德爾迭代法解方程組流程圖:構(gòu)造相應(yīng)的雅克比迭代矩陣形成增廣矩陣a,b開始取迭代初值,并按迭代格式進(jìn)行迭代當(dāng)達(dá)到設(shè)定迭代次數(shù)時,輸出迭代結(jié)果結(jié)束開始3.5(1)雅克比迭代法構(gòu)造相應(yīng)的高斯-賽德爾迭代矩陣形成增廣矩陣a,b開始取迭代初值,并按迭代格式進(jìn)行迭代當(dāng)達(dá)到設(shè)定迭代次數(shù)時,輸出迭代結(jié)果結(jié)束高斯-賽德爾迭代法構(gòu)造相應(yīng)的雅克比迭代矩陣形成增廣矩陣a,b開始取迭代初值,并按迭代格式進(jìn)行迭代當(dāng)達(dá)到設(shè)定迭代次數(shù)時,輸出迭代結(jié)果結(jié)束開始3.5(2)雅克比迭代法構(gòu)造相應(yīng)的高斯-賽德爾迭代矩陣形成增廣矩陣a,b開始取迭代初值,并按迭代格式進(jìn)行迭代當(dāng)達(dá)到設(shè)定
29、迭代次數(shù)時,輸出迭代結(jié)果結(jié)束高斯-賽德爾迭代法程序:采用了matlab進(jìn)行編程:雅克比迭代:function Jacobi(A,b,max,eps)n=length(A);x=zeros(n,1);x1=zeros(n,1);k=0;while 1 x1(1)=(b(1)-A(1,2:n)*x(2:n,1)/A(1,1); for i=2:n-1 x1(i)=(b(i)-A(i,1:i-1)*x(1:i-1,1)-A(i,i+1:n)*x(i+1:n,1)/A(i,i); end x1(n)=(b(n)-A(n,1:n-1)*x(1:n-1,1)/A(n,n); k=k+1; if sum(a
30、bs(x1-x)=max fprintf(The Method is disconvergentn); break; end x=x1;endif kmax for i=1:n fprintf(x%d=%fn,i,x1(i); endend結(jié)果:Jacobi(10 -1 2 0;0 8 -1 3;2 -1 10 0;-1 3 -1 11,-11;-11;6;25,100,1e-6)number=17x1=-1.x2=-2.x3=0.x4=2.5(2)輸入如下:結(jié)果Jacobi(31 -13 0 0 0 -10 0 0 0;-13 35 -9 0 -11 0 0 0 0;0 -9 31 -10
31、0 0 0 0 0;0 0 -10 79 -30 0 0 0 -9;0 0 0 -30 57 -7 0 -5 0;0 0 0 0 7 47 -30 0 0;0 0 0 0 0 -30 41 0 0;0 0 0 0 -5 0 0 27 -2;0 0 0 0 0 0 0 -2 29,-15;27;-23;0;-20;12;-7;7;-10,100,1e-6)number=34x1=-0.x2=0.x3=-0.x4=-0.x5=-0.x6=0.x7=0.x8=0.x9=-0.高斯-賽德爾迭代法:5(1)function GauseSeidel(A,b,max,eps)n=length(A);x=ze
32、ros(n,1);x1=zeros(n,1);k=0;while 1 x1(1)=(b(1)-A(1,2:n)*x(2:n,1)/A(1,1); for i=2:n-1 x1(i)=(b(i)-A(i,1:i-1)*x(1:i-1,1)-A(i,i+1:n)*x(i+1:n,1)/A(i,i); end x1(n)=(b(n)-A(n,1:n-1)*x(1:n-1,1)/A(n,n); k=k+1; if sum(abs(x1-x)=max fprintf(The Method is disconvergentn); break; end x=x1;endif kmax for i=1:n f
33、printf(x%d=%fn,i,x1(i); endend結(jié)果:GauseSeidel (10 -1 2 0;0 8 -1 3;2 -1 10 0;-1 3 -1 11,-11;-11;6;25,100,1e-6)number=17x1=-1.x2=-2.x3=0.x4=2.5(2):改變矩陣,結(jié)果為:GauseSeidel (31 -13 0 0 0 -10 0 0 0;-13 35 -9 0 -11 0 0 0 0;0 -9 31 -10 0 0 0 0 0;0 0 -10 79 -30 0 0 0 -9;0 0 0 -30 57 -7 0 -5 0;0 0 0 0 7 47 -30 0
34、 0;0 0 0 0 0 -30 41 0 0;0 0 0 0 -5 0 0 27 -2;0 0 0 0 0 0 0 -2 29,-15;27;-23;0;-20;12;-7;7;-10,100,1e-6)number=34x1=-0.x2=0.x3=-0.x4=-0.x5=-0.x6=0.x7=0.x8=0.x9=-0.四、總結(jié)掌握了用列主元消去法和LU分解法求解方程組程序編寫的技巧。4 插值法一、實(shí)驗(yàn)?zāi)康模?)熟悉拉格朗日插值法多項(xiàng)式和牛頓插值多項(xiàng)式,注意其不同點(diǎn);(2)掌握三次樣條插值解決一些實(shí)際問題。二、實(shí)驗(yàn)內(nèi)容1、按下列數(shù)據(jù)做二次插值,并求給x1= -2,x2= 0,x3=2.75時
35、的函數(shù)值近似值xi-3.0-1.01.02.03.0yi1.01.52.02.01.02、按下列數(shù)據(jù)做五次插值,并求x1= 0.46,x2= 0.55,x3=0.60的函數(shù)值近似值xi0.30.420.500.580.660.72yi1.044031084621.118031.156031.198171.232233、編寫一個牛頓前插公式計算函數(shù)值的程序,要求先輸出差分表,再計算x點(diǎn)的函數(shù)值,并應(yīng)用于下列問題中:xi2021222324yi1.301031.322221.342421.361731.38021求x=21.4時的三次插值多項(xiàng)式的值。三、實(shí)驗(yàn)步驟、程序設(shè)計、實(shí)驗(yàn)結(jié)果及分析1、二次插
36、值(1)程序設(shè)計#includefloat Lagrange(float x,float y,float xx,int n) int i,j;float *a,yy=0;a=new floatn;for(i=0;i=n-1;i+)ai=yi;for(j=0;j=n-1;j+)if(j!=i)ai*=(xx-xj)/(xi-xj);yy+=ai;delete a;return yy;int main()float x5=-3.0,-1.0,1.0,2.0,3.0;float y5=1.0,1.5,2.0,2.0,1.0;float xx1=-2,xx2=0,xx3=2.75,yy1,yy2,yy
37、3;yy1=Lagrange(x,y,xx1,3);yy2=Lagrange(x,y,xx2,3);yy3=Lagrange(x,y,xx3,3);printf(x1=%-20f,y1=%fn,xx1,yy1);printf(x2=%-20f,y2=%fn,xx2,yy2);printf(x3=%-20f,y3=%fn,xx3,yy3);(2)實(shí)驗(yàn)結(jié)果2、五次插值(1)程序設(shè)計#includefloat Lagrange(float x,float y,float xx,int n) /n為(n+1)次插值;int i,j;float *a,yy=0;a=new floatn;for(i=0;
38、i=n-1;i+)ai=yi;for(j=0;j=n-1;j+)if(j!=i)ai*=(xx-xj)/(xi-xj);yy+=ai;delete a;return yy;void main()float x6=0.30,0.42,0.50,0.58,0.66,0.72;float y6=1.04403,1.08462,1.11803,1.15603,1.19817,1.23223;float xx1=0.46,xx2=0.55,xx3=0.60,yy1,yy2,yy3;yy1=Lagrange(x,y,xx1,6);yy2=Lagrange(x,y,xx2,6);yy3=Lagrange(x
39、,y,xx3,6);printf(x1=%-20f,y1=%fn,xx1,yy1);printf(x2=%-20f,y2=%fn,xx2,yy2);printf(x3=%-20f,y3=%fn,xx3,yy3);(2)實(shí)驗(yàn)結(jié)果3、牛頓前插公式計算函數(shù)值(1)程序設(shè)計#include#define N 3void Difference(float y,float f44,int n)int k,i;f00=y0;f10=y1;f20=y2;f30=y3;for(k=1;k=n;k+)for(i=0;i=(N-k);i+)fik=fi+1k-1-fik-1;return;void main()in
40、t i,k=1;float a,b=1,m=21.4,t=1.4,f44=0;float x5=20,21,22,23,24;float y5=1.30103,1.32222,1.34242,1.36173,1.38021;Difference(y,f,N);a=f00;for(i=1;i=N;i+)k=k*i;b=b*(t-i+1);a=a+b*f0i/k;printf(x(k)n);for (i=0;i=4;i+) printf( %-20f,xi);printf(ny(k)n);for (i=0;i=4;i+)printf(%-20f,yi);for(k=1;k=3;k+)printf(
41、nF(%d)n ,k);for(i=0;i=(3-k);i+)printf(%-20f,fik);printf (n);printf(f(%f)=%-20f,m,a);printf (n);(2)實(shí)驗(yàn)結(jié)果四、總結(jié)學(xué)習(xí)了插值法,學(xué)會了利用插值法編程求多項(xiàng)式的解,可以求解很多問題,讓求解多項(xiàng)式解變得非常簡單。5 曲線擬合一、實(shí)驗(yàn)?zāi)康模?)了解最小二乘法的基本原理,通過計算機(jī)解決實(shí)際問題;(2)了解超定方程組的最小二乘解法。二、實(shí)驗(yàn)內(nèi)容已知實(shí)驗(yàn)數(shù)據(jù)如下,試用形如的拋物線進(jìn)行最小二乘擬合。xi1.02.53.54.0yi3.81.5026.033.0三、程序設(shè)計、結(jié)果分析程序:#include#includevoid main()int i;float a2;float x4=1.0,2.5,3.5,4.0;f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版?zhèn)€人民間借款合同書范本:個人光伏發(fā)電設(shè)備貸款合作協(xié)議4篇
- 潮州2024年廣東潮州市科學(xué)技術(shù)局屬下事業(yè)單位招聘10人(第二輪)筆試歷年參考題庫附帶答案詳解
- 2025年度個人經(jīng)營性短期借款合同:創(chuàng)業(yè)資金支持范本
- 泰州2024年江蘇泰州靖江市公安局補(bǔ)錄招聘警務(wù)輔助人員18人筆試歷年參考題庫附帶答案詳解
- 楚雄云南楚雄雙江自治縣綜合行政執(zhí)法局招聘編外長聘人員筆試歷年參考題庫附帶答案詳解
- 文山2025年云南文山市公安局第一批警務(wù)輔助人員招聘47人筆試歷年參考題庫附帶答案詳解
- 2025年度店鋪升級改造施工及后期維護(hù)服務(wù)合同范本3篇
- 2025年蘇科版九年級地理上冊階段測試試卷
- 2025年冀少新版選修化學(xué)上冊月考試卷含答案
- 2025年浙教版必修5語文下冊月考試卷含答案
- 衛(wèi)生服務(wù)個人基本信息表
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實(shí)踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 交叉口同向可變車道動態(tài)控制與信號配時優(yōu)化研究
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 數(shù)列練習(xí)題(含答案)基礎(chǔ)知識點(diǎn)
- 人教版(2024新版)七年級上冊英語期中+期末學(xué)業(yè)質(zhì)量測試卷 2套(含答案)
- 安華農(nóng)業(yè)保險股份有限公司北京市地方財政生豬價格指數(shù)保險條款(風(fēng)險敏感型)
評論
0/150
提交評論