Интерполяция функции полиномом Ньютона - C (СИ)

Узнай цену своей работы

Формулировка задачи:

program inerp;
uses crt;
var XI,YI:array [1..4] of real;
fx: array [1..3] of real;
fxx:array [1..2] of real;
i: integer;
fxxx,rez,x: real;
Begin
clrscr;
Writeln ('*****************************************************');
Writeln (' Интерполяция функции полиномом Ньютона ');
Writeln ('*****************************************************');
writeln ('Заданные значения узлов:');
Writeln ('№ | x | y');
writeln ('------------');
XI[1]:=3; YI[1]:=4.4;
XI[2]:=4; YI[2]:=2.9;
XI[3]:=5; YI[3]:=3.1;
XI[4]:=6; YI[4]:=2.2;
for i:=1 to 4 do
writeln (i-1,' | ', XI[i],' | ', YI[i]);
writeln ('Разделенная разность первого порядка');
writeln ('------------------------------------');
for i:=1 to 3 do begin
fx[i]:=(YI[i+1]-YI[i])/(Xi[i+1]-xi[i]);
writeln (fx[i]:4:2); end;
writeln ('Разделенная разность второго порядка');
writeln ('------------------------------------');
for i:=1 to 2 do begin
fxx[i]:=(fx[i+1]-fx[i])/(XI[i+2]-XI[i]);
writeln (fxx[i]:4:2); end;
fxxx:=(fxx[2]-fxx[1])/(xi[4]-xi[1]);
Writeln ('Разделенная разность третьего порядка');
writeln ('-------------------------------------');
writeln (fxxx:4:2);
writeln ('Введите значение интерполируемой переменной Х:');
writeln ('-------------------');
readln (x);
rez:=yi[1]+fx[1]*(x-xi[1])+fxx[1]*(x-xi[1])*(x-xi[2])+ fxxx*(x-xi[1])*(x-xi[2])*(x-xi[3]);
writeln ('Значение интерполируемой переменной = ', rez:4:2);
writeln ('------------------------------------------------');
End.

Решение задачи: «Интерполяция функции полиномом Ньютона»

textual
Листинг программы
#include <stdio.h>
 
void main()
{
    float fxxx, rez, x, XI[4], YI[4], fx[3], fxx[2];
    int i;
    system("cls");
    setlocale(0, "rus");
    printf("*****************************************************\n");
    printf("Интерполяция функции полиномом Ньютона\n");
    printf("*****************************************************\n");
    printf("Заданные значения узлов:\n");
    printf("№ | x | y\n");
    printf("------------\n");
    XI[0]=3; YI[0]=4.4;
    XI[1]=4; YI[1]=2.9;
    XI[2]=5; YI[2]=3.1;
    XI[3]=6; YI[3]=2.2;
    for(i=0; i<4; i++)
        printf("%d | %.4f | %.4f\n", i, XI[i], YI[i]);
    printf("Разделенная разность первого порядка\n");
    printf("------------------------------------\n");
    for(i=0; i<3; i++)
    {
        fx[i]=(YI[i+1]-YI[i])/(XI[i+1]-XI[i]);
        printf("%.2f\n", fx[i]);
    }
    printf("Разделенная разность второго порядка\n");
    printf("------------------------------------\n");
    for(i=0; i<2; i++)
    {
        fxx[i]=(fx[i+1]-fx[i])/(XI[i+2]-XI[i]);
        printf("%4.2f\n", fx[i]);
    }
    fxxx=(fxx[1]-fxx[0])/(XI[3]-XI[0]);
    printf("Разделенная разность третьего порядка\n");
    printf("------------------------------------\n");
    printf("%.4f\n", fxxx);
    printf("Введите значение интерполируемой переменной Х:\n");
    printf("------------\n");
    scanf("%f", &x);
    rez=YI[0]+fx[0]*(x-XI[0])+fxx[0]*(x-XI[0])*(x-XI[1])+ fxxx*(x-XI[0])*(x-XI[1])*(x-XI[2]);
    printf("Значение интерполируемой переменной = %.4f\n", rez);
    printf("------------------------------------\n");
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы