數值計算方法上機題徐濤

2021-03-04 09:55:34 字數 3375 閱讀 3662

第二章插值法計算公式 1

1.1 lagrange插值多項式 1

1.2 newton向前插值計算公式: 1

1.3 newton向後插值公式: 2

第六章解線性代數方程組的迭代法 3

6.1 雅各比迭代格式通用程式: 3

6.2 高斯-賽德爾迭代格式通用程式 4

6.3 sor方法迭代格式通用程式: 5

6.4 雅各比方法計算例項: 6

6.5 高斯-賽德爾方法計算例項: 10

6.6 sor方法迭代格式計算例項: 12

流程圖:

源程式:

const n=40;

#include

void main()

; double y[n]=;

double xr;

double l[n]=,l;

int n=0;

int i=0,j=0;

cout<<"輸入插值點的個數:"< cin>>n;

cout<<"輸入各點的座標值:"<

for(i=0;i

cout<<"輸入要計算的點的橫座標:"< //輸入要計算的點的橫座標

cin>>xr;

for(i=0;i

for(i=0;i l+=y[i]*l[i];

cout<<"x對應的函式值為:"<< l<}

流程圖:

源程式:

const n=40;

#include

void main()

; double y[n]=;

double r[n][ n]=;

double xr;

double yr;

double p[n]=;

double t=1.0;

int n=0;

int i=0,j=0;

//輸入插值點的個數

cout<<"輸入插值點的個數:"< cin>>n;

cout<<"輸入各點的座標值:"< //輸入各點的座標值

for(i=0;i

cout<<"輸入要計算的點的橫座標:"< //輸入要計算的點的橫座標

cin>>xr;

//計算此橫座標對應的t值

t=(xr-x[0])/(x[1]-x[0]);

//造向前差分表

for(j=0;j<=n;j++)

r[0][j]=y[j];

for(i=1;i

p[0]=1;

double pp=1;

for(i=1;i<=n;i++)

double pt=1;//計算t(t-1)..(t-i+1)的值

yr=y[0];

for(i=1;i //計算插值點的值

:cout<<"x對應的函式值為:"<< yr<

}流程圖:

源程式:

const n=40;

#include

void main()

; double y[n]=;

double r[n][n]=;

double xr;

double yr;

double p[n]=;

double t=1;

int n;

int i=0,j=0;

cout<<"輸入插值點的個數:"< cin>>n;

cout<<"輸入各點的座標值:"< for(i=0;i

cout<<"輸入要計算的點的橫座標:"< cin>>xr;

//計算此橫座標對應的t值

t=(xr-x[0])/(x[1]-x[0]);

for(j=0;j<=n;j++)

r[0][j]=y[j]; //造向後差分表

for(i=0;i

p[0]=1;

double pp=1;

for(i=1;i<=n;i++)

double pt=1;

yr=y[n-1];

for(i=1;i

流程圖:

源程式:

const n=30;

#include

#include

#include

#include

void main()

; double x[n][n]=;

double b[n]=;

int n=0,c=0;

int i=0,j=0,r=0,k=0,jj=0,ii=0;

cout<<"輸入係數方陣的維數:"<

cin>>n;

cout<<"輸入係數矩陣:"

}cout<<"輸入常數向量b:"< for(j=0;j cin>>b[j];

cout<<"輸入初始迭代向量:"< for(j=0;j

cout<<"輸入迭代次數:"< cin>>c;

cout<<"係數矩陣為:"< for(i=0;i

cout< }

double sum=0;

double d[n][n]=;

for(k=0;k

}}流程圖:

源程式:

const n=30;

#include

#include

#include

#include

void main()

; double x[n][n]=;

double b[n]=;

int n=0,c=0;

int i=0,j=0,r=0,k=0,jj=0,ii=0;

cout<<"輸入係數方陣的維數:"< cin>>n;

cout<<"輸入係數矩陣:"< for(i=0;i

}cout<<"輸入常數向量b:"< for(j=0;j cin>>b[j];

cout<<"輸入初始迭代向量:"< for(j=0;j

cout<<"輸入迭代次數:"< cin>>c;

cout<<"係數矩陣為:"< for(i=0;i

cout<輸出係數矩陣

double sum=0;

double d[n][n]=;

for(k=0;k {

cout<<"第"< for(i=0;i {

sum=0;

for(j=0;j

sum=sum+a[i][j]*x[k+1][j];

for(j=i+1;j

sum=sum+a[i][j]*x[k][j];

x[k+1][i]=(b[i]-sum)/a[i][i];

數值計算方法上機報告

電氣化0805 張瑩 200801000529 一 牛頓法求解非線性方程 演算法原理 迭代公式 牛頓迭代法是將非線性方程組進行泰勒展開,逐步線性化,從而將非線性方程組近似的轉化為線性方程得到迭代序列的方法。程式框圖 變數說明 分別表示每次迭代的初值和終值,為精度控制量,為最大迭代次數。具體算例 求x...

大學數值計算方法上機心得

不知不覺中幾天的計算方法上機課已經結束。通過幾天的訓練讓我受益匪淺。使我對數學與c語言的相關知識有了新的認識,也加深了我對它們的理解。我們知道,數學是一門重要的基礎學科。離開了數學,科技便無法發展。而在數學這門學科中,數值計算方法有著其不可取代的重要地位。數值計算方法主要研究實際問題,當今社會計算機...

數值計算方法教案 數值微分

第四章數值微分 一 中點公式 1.導數定義及數值微分的含義 向前公式 向後公式 中心公式 但當f x 不能或很難直接求導,或f x 並沒有解析表示式,只是乙個數表,此時如何計算呢?中點微分公式 用來替代f x 在a點的導數值 2.中點公式的誤差分析 作泰勒展開 把以上2式代入中點公式有 則從截斷誤差...