freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

fortran數(shù)值計(jì)算基礎(chǔ)(編輯修改稿)

2025-07-22 06:45 本頁面
 

【文章內(nèi)容簡介】 ]。 f=new double[N]。 //若內(nèi)存分配失敗,退出程序 if(a==NULL||b==NULL||c==NULL||f==NULL) { cout初始化分配存儲空間失?。n。 exit(EXIT_FAILURE)。 } //依次輸入三對角矩陣每行的元素 cin*b*c*f。 for(int i=1。iN1。++i) cin*(a+i1)*(b+i)*(c+i)*(f+i)。 cin*(a+i1)*(b+i)*(f+i)。}void MatrixThr::Result(){ //對系數(shù)矩陣A作Crout分解 for(int i=0。iN1。++i) { //將U中的α存于指針b中,L中的β存于指針c中 *(c+i)/=(*(b+i))。 *(b+i+1)=(*(a+i))*(*(c+i))。 } //解方程組Ly=f,求得的y值存于指針b中 *b=(*f)/(*b)。 for(i=1。iN。++i) *(b+i)=((*(f+i))(*(a+i1))*(*(b+i1)))/(*(b+i))。 //解方程組Ux=y,求得的x值存于指針a中 *(a+N1)=*(b+N1)。 for(i=N2。i=0。i) *(a+i)=*(b+i)(*(c+i))*(*(a+i+1))。}int MatrixThr::GetN()const{ return N。}double MatrixThr::GetX(const int i)const{ return *(a+i1)。}運(yùn)行結(jié)果Lagrange插值法的源程序:includeiostreamincludeusing namespace std。class Lagrange{public: Lagrange()。 ~Lagrange()。 void SetLagrange(const int n)。//根據(jù)用戶的輸入設(shè)置Lagrange類中的插值點(diǎn)數(shù)據(jù) bool Exist(const double x,const int i)。//檢測是否輸入了與前i個(gè)插值結(jié)點(diǎn)橫坐標(biāo)相同的點(diǎn) int GetN()const。//獲取插值結(jié)點(diǎn)的數(shù)目 void Calculate(const double a)。//計(jì)算橫坐標(biāo)a對應(yīng)的函數(shù)值 double GetResult()const。//返回計(jì)算的函數(shù)值private: int N。//插值結(jié)點(diǎn)的數(shù)目 double *x,*y,zx,zy。//x、y分別用于存儲插值點(diǎn)的數(shù)據(jù),zx、zy表示所求的坐標(biāo)點(diǎn)}。int main(){ int n=2。 Lagrange L。 do { if(n2) cout用于模擬曲線的插值點(diǎn)數(shù)目N2endl。 cout請輸入用于模擬曲線的插值點(diǎn)數(shù)目N:。 cinn。 }while(n2)。 cout請輸入各插值點(diǎn)橫、縱坐標(biāo)的數(shù)據(jù)\n。 (n)。 double a。 cout請輸入所求點(diǎn)的橫坐標(biāo)X:。 cina。 (a)。 cout橫坐標(biāo)a對應(yīng)的函數(shù)值為:()endl。 return 0。}Lagrange::Lagrange(){ //初始化相關(guān)數(shù)據(jù) N=0。 x=y=NULL。 zx=zy=0。}Lagrange::~Lagrange(){ //釋放分配給指針的內(nèi)存空間 delete []x。 delete []y。}bool Lagrange::Exist(const double a,const int i){ //遍歷以輸入的插值點(diǎn),看是否重復(fù)插入橫坐標(biāo)相同的插值點(diǎn) for(int j=0。ji。++j) if(a==*(x+j)) return true。 return false。}void Lagrange::SetLagrange(const int n){ N=n。 x=new double[N]。 y=new double[N]。 //判斷是否成功為指針分配了內(nèi)存空間 if(x==NULL||y==NULL) { cout分配存儲空間失??!endl。 exit(EXIT_FAILURE)。 } //輸入插值點(diǎn) for(int i=0。iGetN()。++i) { cin*(x+i)*(y+i)。 //如果不是輸入第一個(gè)坐標(biāo)值,則會對輸入的橫坐標(biāo)進(jìn)行合法性檢測 while(i!=0amp。amp。Exist(*(x+i),i)==true) { cout輸入了重復(fù)的橫坐標(biāo)請重新輸入第i+1個(gè)插入結(jié)點(diǎn)的數(shù)據(jù)\n。 cin*(x+i)*(y+i)。 } }}void Lagrange::Calculate(const double a){ zx=a。 for(int i=0。iGetN()。++i) { //計(jì)算插值基函數(shù) double temp=1。 for(int j=0。ji。++j) temp*=((zx*(x+j))/(*(x+i)*(x+j)))。 for(++j。jGetN()。++j) temp*=((zx*(x+j))/(*(x+i)*(x+j)))。 zy+=(*(y+i)*temp)。 }}int Lagrange::GetN()const{ return N。//返回插值點(diǎn)的數(shù)目}double Lagrange::GetResult() const{ return zy。//返回求得的函數(shù)值}Lagrange插值法的運(yùn)行結(jié)果Newton插值法的源程序:include iostreamusing namespace std。class Matrix{public: Matrix()。 ~Matrix()。 void SetMatrix(const int n)。//根據(jù)用戶輸入的插值點(diǎn)的數(shù)據(jù)設(shè)置計(jì)算結(jié)果的矩陣 int GetN()const。//返回插值點(diǎn)的數(shù)目 void Calculate()。//計(jì)算差商 double GetResult(double x)const。//根據(jù)輸入的橫坐標(biāo)求函數(shù)值,返回運(yùn)算結(jié)果private: double *a,*f。//a和f分別用于存儲插值點(diǎn)的橫坐標(biāo)和相應(yīng)的函數(shù)值 int N。//記錄插值點(diǎn)的數(shù)目}。int main(){ Matrix matrix。 int n。 do{ cout輸入插值點(diǎn)的數(shù)目N:。 cinn。 }while(n2)。 cout輸入插值點(diǎn)的數(shù)據(jù):endl。 (n)。 ()。 double x。 cout輸入所求的橫坐標(biāo):。 cinx。 cout所求的函數(shù)值為:(x)endl。 return 1。}Matrix::Matrix(){ //初始化數(shù)據(jù) a=f=NULL。 N=0。}Matrix::~Matrix(){ //釋放指針a、f指向的內(nèi)存空間 delete []a。 delete []f。}void Matrix::SetMatrix(int n){ N=n。 //為插值點(diǎn)創(chuàng)建動態(tài)數(shù)組 a=new double[N]。 f=new double[N]。 //輸入插值點(diǎn)的數(shù)據(jù) for(int i=0。iGetN()。++i) cin*(a+i)*(f+i)。}int Matrix::GetN() const{ return N。}void Matrix::Calculate(){ //將差商存儲在一個(gè)一維數(shù)組內(nèi) for(int i=0。iGetN()。++i) for(int j=GetN()1。ji。j) *(f+j)=(*(f+j)*(f+j1))/(*(a+j)*(a+ji1))。}double Matrix::GetResult(double x) const{ //利用差商和插值點(diǎn)的橫坐標(biāo)及第一個(gè)插值點(diǎn)的縱坐標(biāo)計(jì)算函數(shù)值 double result=*f。//指針f指向第一個(gè)插值點(diǎn)的縱坐標(biāo) for(int i=1。iGetN()。++i) { double temp=1。 for(int j=0。ji。++j) temp*=(x*(a+j))。//計(jì)算(xx0)*(xx1)**(xx(i1)) result+=(*(f+i))*temp。//指針(f+i)指向第i號差商 } return result。} Newton插值法的運(yùn)行結(jié)果變步長梯形法求定積分的源程序:includeiostreamincludeusing namespace std。double function(const double x)。//求被積函數(shù)的值并返回//accumulate()為求定積分的函數(shù),a、b分別為積分的上下限,double accumulate(const double a,const double b,const double eps=)。int main(){ double a,b,eps。//a,b分別為定積分的上限和下限,h為步長,eps為要求的精度 a=0。 b=1。 eps=。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1