我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

拉格朗日算法代码JAVA java拉格朗日插值

用matlab编写拉格朗日插值算法的程序

做了一个测试,希望有所帮助。代码:% 用matlab编写拉格朗日插值算法的程序,并以下面给出的函数表为数据基础,

井陉矿网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联建站于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

% 在整个插值区间上采用拉格朗日插值法计算f(0.6),写出程序源代码,输出计算结果

% x -2.15 -1.00 0.01 1.02 2.03 3.25

% y 17.03 7.24 1.05 2.03 17.06 23.05

function main()

clc;

x = [-2.15 -1.00 0.01 1.02 2.03 3.25];

y = [17.03 7.24 1.05 2.03 17.06 23.05 ];

x0 = 0.6;

f = Language(x,y,x0)function f = Language(x,y,x0)

%求已知数据点的拉格朗日插值多项式

%已知数据点的x坐标向量: x

%已知数据点的y坐标向量: y

%插值点的x坐标: x0

%求得的拉格朗日插值多项式或在x0处的插值: fsyms t l;

if(length(x) == length(y))

n = length(x);

else

disp('x和y的维数不相等!');

return; %检错

endh=sym(0);

for (i=1:n)

l=sym(y(i));

for(j=1:i-1)

l=l*(t-x(j))/(x(i)-x(j));

end;

for(j=i+1:n)

l=l*(t-x(j))/(x(i)-x(j));

end;

h=h+l;

end

simplify(h);if(nargin == 3)

f = subs (h,'t',x0); %计算插值点的函数值

else

f=collect(h);

f = vpa(f,6); %将插值多项式的系数化成6位精度的小数

end结果:

f = 0.0201

拉格朗日插值算法

全区间拉格朗日插值

功用 

本程序用拉格朗日插值公式对一元不等距观测数据进行程组插值 。

方法概要

对给定的n个插值节点x1,x2,…,xn及对应的函数值y1,y2,…,yn,计算给定点x的函数值y(x)。

本程序可以在插值区间内对给定的NJ个插值点进行插值。

程序说明

(1)、程序名

LGRCZ1.FOR (此文件为免费软件,你可以从本站点 下载。)

(2)、子程序语句

SUBROUTINE LGRCZ1(Z,N,CZ,NJ)

(3)、形参说明

Z  输入参数,两维实数组,容量为N×2,存放给定的插值节点数列及对应的观测值。

N输入参数,整变量,插值节点数。

NJ  输入参数,整变量,插值节点数。

CZ  输入输出参数,二维实数组,容量NJ×2,第一列输入插值点数列,第二列输出插值

结果。

计算实例

(1)、例题

设已知下表观测数据

x

1

2

3

4

5

6

7

Y1

1

4

9

16

25

36

49

要在给出2,2.5,3,3.5,4,4.5,5,5.5,6,6.5上进行插值。这里N=7,NJ=10。

(2)、主程序设计

N、NJ用参数说明语句定义,观测数据及插值点数用DATA语句输入,屏幕显示插值结果。

(3)、计算结果

 

程序清单

c++编程问题 拉格朗日插值法

代码问题,改一句就好了:

#includeiostream

#define N 3 //插值节点数目

using namespace std;

void main()

{

float x[N];         //差值节点横坐标

float y[N];         //差值节点纵坐标

float a;            //所求点横坐标

float  fx=0,tmp=1;

int i,j;

cout"输入插值点的坐标:"endl;

for(i=0;iN;i++)

{

cinx[i];

ciny[i];

}

cout"输入所求点的横坐标:"endl;

cina;

for(i=0;iN;i++)

{

tmp = 1;//加上这句,开始前还原tmp

{

for(j=0;jN;j++)

if(i!=j)

tmp=tmp*(a-x[j])/(x[i]-x[j]);

}

fx=fx+tmp*y[i];

}

cout"所求值为:"endl;

coutfxendl;

}


文章名称:拉格朗日算法代码JAVA java拉格朗日插值
路径分享:http://shouzuofang.com/article/doeohed.html

其他资讯