Lagrange和Newton插值

分別用1~~4次Lagrange,Newton插值計算函數(shù)在0.9處的函數(shù)值

i 1 2 3 4 5
xi 0 0.17 0.65 0.85 1

分別用1~~4次Lagrange,Newton插值計算函數(shù)在0.9處的函數(shù)值

Lagrange

Newton

#include <iostream>
using namespace std;

//求yi的值
float Evaluation(float x)
{
    return 1/(1+25*x*x);
}

//Lagrange
float Lagrange(float x,int n,float a[],float b[])
{
    float t,y=0;
    int j,k;
    for (k = 0;k <= n;k++)
    {
        t = 1;
        for (j = 0;j <= n;j++)
        {
            if (j != k)
                t = ((x - a[j])/(a[k]-a[j]))*t;
        }
        y = t * b[k]+y;
    }
    return y;
}

// Newton均差
void AverageDeviation(int n,float ad[][100],float a[],float b[])
{
    int i,j;
    for (i = 0;i <= n; i++)
    {
        ad[i][0] = b[i];
        for (j = 1;j <= n; j++)
        {
            if(j>i)
                ad[i][j] = 0;
            else
            {
                ad[i][j] = (ad[i-1][j-1]-ad[i][j-1])/(a[i-j]-a[i]);
            }
        }
    }
    
}

//Newton
float Newton(int n,float x,float a[],float b[],float ad[][100])
{
    int i,j;
    float y=ad[0][0];
    float p;
    for (i=1;i<=n;i++)
    {
        p=ad[i][i];
        for(j=0;j<=i-1;j++)
            p *= (x-a[j]);
        y += p;
    }
    return y;

}

int main()
{
    float x,a[100],b[100];
    float ad[100][100];
    int i,j,k,n;
    cout << "輸入插值次數(shù)n:"<<endl;
    cin >> n;
    cout << "輸入你要估算對象x?:"<<endl;
    cin >> x;
    for (i=0;i<=n;i++)
    {
        cout<< "輸入x"<<i<<"的值:";
        cin >> a[i];
        b[i] = Evaluation(a[i]);
        cout<< "輸入y"<<i<<"的值:"<<b[i]<<endl;
    }
    cout << "Lagrange得y = "<< Lagrange(x,n,a,b)<<endl;
    // 調(diào)用函數(shù)求Newton均差
    AverageDeviation(n,ad,a,b);
    for(i=0;i<=n;i++)
    {
        cout<<"第"<<i<<"階均差為:"<<ad[i][i]<<endl;
    }
    cout << "Newton得y = "<< Newton(n,x,a,b,ad)<<endl;
    return 0;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,014評論 2 59
  • 本系列出于AWeiLoveAndroid的分享,在此感謝,再結(jié)合自身經(jīng)驗查漏補缺,完善答案。以成系統(tǒng)。 Andro...
    濟公大將閱讀 1,998評論 2 10
  • 在心靈的最深處 永遠有一個塵封的角落 深藏著你最不想觸及 卻又永遠難以忘記的 記憶
    一葉茶閱讀 177評論 2 3
  • E-R圖 實體聯(lián)系圖表示了實體類型,屬性聯(lián)系方法矩形表示實體菱形表示聯(lián)系橢圓表示屬性 完整性約束 實體性約束 主...
    慘不忍睹閱讀 3,057評論 0 0

友情鏈接更多精彩內(nèi)容