資源描述:
《vzjgqq數(shù)值分析實驗報告(1)new》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、生命是永恒不斷的創(chuàng)造,因為在它內部蘊含著過剩的精力,它不斷流溢,越出時間和空間的界限,它不停地追求,以形形色色的自我表現(xiàn)的形式表現(xiàn)出來。--泰戈爾《數(shù)值分析》實驗報告冊姓名:學號:專業(yè):年級:計算機科學學院計算機應用教研室2008年春季學期目錄實驗一3實驗二5實驗三7實驗四10實驗五12實驗六15實驗七……………………………………………………………………18實驗一一、課題名稱非線性方程數(shù)值解法二、目的和意義學會常用的插值方法,求函數(shù)的近似表達式,以解決其它實際問題;明確插值多項式和分段插值多項式各自的
2、優(yōu)缺點;熟悉插值方法的程序編制;如果繪出插值函數(shù)的曲線,觀察其光滑性。三、計算公式Lagrange插值公式:牛頓插值公式:四、結構程序設計程序設計:#include"math.h"floatf(floatx){return((x*x*x-1)/3);/*牛頓迭代函數(shù)*/}main(){floatx1,x2,eps,d;intk=0;clrscr();printf("inputx1=");/*輸入迭代初值*/scanf("%f",&x1);printf("inputeps=");/*輸入求解精度
3、eps*/scanf("%f",&eps);do{k++;x1=x2;x2=f(x1);printf("%d%f",k,x2);}while(fabs(x2-x1)>=eps);printf("therootoff(x)=0isx=%f,k=%d",x2,k);/*輸出x和迭代次數(shù)k*/getch();}五、結果討論和分析計算結果分析:將六種迭代格式分別代入程序試驗:(1)第一種格式:無論何值都無法求出,即發(fā)散(2)第二種格式:初值為任意的x(x2<=1),精度為0.00001X=-0.3
4、47296,k=6其他值為發(fā)散。(3)第三種格式:初值為任意的x(x>0),精度為0.0001X=1.879372,k=10其他值為發(fā)散。(4)第四種格式:初值為任意值,精度為0.00001X=-0.347296,k=5(5)第五種格式:初值為任意值,精度為0.00001X=-0.347296,k=4(6)第六種格式:初值為任意值,精度為0.00001X=-0.347296,k=4由此可知不同的初值對公式的計算有影響,當初值不滿足函數(shù)的收斂條件時,無法計算結果,函數(shù)發(fā)散。精度的大小不同也使迭代函數(shù)迭代
5、的次數(shù)不同,從而影響xn的近似程度。實驗二一、課題名稱解線性方程組的直接方法二、目的和意義掌握線性方程組直接接法的基本思想;了解不同數(shù)值方法解線性方程組的原理、實現(xiàn)條件、使用范圍、計算公式;培養(yǎng)編程與上機調試能力。三、計算公式消去法設a(k)kk=0,對k=1,2,……,n-1計算mik=a(k)ik/a(k)kka(k+1)ij=a(k)ij-mika(k)kji,j=k+1,k+2,……,nb(k+1)i=b(k)i-mikb(k)knxn=b(n)n/a(n)nnj=i+1xi=(b(i)i-Σ
6、a(i)ijxj)/a(i)iii=n-1,n-2,……,1平方根法追趕法lij=(aii-Σl2ik)1/2Ly=flji=(aji-Σljklik)/liij=i+1,i+2,……,nUx=yy1=f1/l1y2=(fi-aiyi-1)/lii=2,3,……,n四、結構程序設計用追趕法求解線性方程組#include"stdio.h"main(){FILE*f;doublea[15],b[15],c[15],d[15];doublet;inti,n;f=fopen("zgf.dat","r");fs
7、canf(f,"%d",&n);fscanf(f,"%lf%lf%lf",&b[1],&c[1],&d[1]);for(i=2;i<=n-1;i++){fscanf(f,"%lf%lf%lf%lf",&a[i],&b[i],&c[i],&d[i]);}fscanf(f,"%lf%lf%lf",&a[n],&b[n],&d[n]);fclose(f);c[1]=c[1]/b[1];d[1]=d[1]/b[1];for(i=2;i<=n-1;i++){t=b[i]-c[i-1]*a[i];c[i]=c[i
8、]/t;d[i]=(d[i]-d[i-1]*a[i])/t;}d[n]=(d[n]-d[n-1]*a[n])/(b[n]-c[n-1]*a[n]);for(i==n-1;i>=1;i--)d[i]=d[i]-c[i]*d[i+1];printf("***************");for(i=1;i<=n;i++)printf("d[%2d]=%lf",i,d[i]);}五、結果討論和分析此方法通過有限步算術運算求出精確解,但實際計算由于舍