當前位置:編程學習大全網 - 編程語言 - 生產程序設計

生產程序設計

(1)n節點拉格朗日插值多項式程序

函數yy =拉格朗日(x1,y1,xx)

%本程序是拉格朗日1插補,其中X1和Y1。

%是插值節點和節點上的函數值,輸出是插值點xx的函數值。

%xx可以是壹個向量。

符號x

n =長度(x 1);

對於i=1:n

t = x 1;t(I)=[];L(i)=prod((x-t)。/(x 1(I)-t));% L向量用於存儲插值基函數。

結束

u = sum(l . * y 1);

P=simplify(u)% p是簡化的拉格朗日插值函數(字符串)。

yy=subs(p,x,xx);

clf

繪圖(x1,y1,' ro ',xx,yy,' * ')

========

命令窗口命令和結果

格式長g

& gt& gt拉格朗日([11 12],[0.190809 0.207912],11.5)

p =

(616200515415341 * x)/36028797018963968+96413060822745/36028797018963968

ans =

0.1993605

& gt& gt拉格朗日([11 12 13],[0.190809 0.207912 0.224951],11.5)

p =

-(1152921504607*x^2)/36028797018963968+(321358855010651 * x)/18014398509481984-55772577785379/36028797018963968

ans =

0.1993685

& gt& gtsin(11.5 * pi/180)

ans = 0.199367934417197

(2)

函數f =牛頓(x,y,x0)

%這個程序是牛頓插值法,其中x,y

%是插值節點和節點上的函數值,輸出是插值點x0的函數值。

%x0可以是壹個向量。

syms t;

if(長度(x) ==長度(y))

n =長度(x);

c(1:n)= 0.0;

其他

disp(' x和y的維數不相等!');

返回;

結束

f = y(1);

y 1 = 0;

l = 1;

for(i=1:n-1)

for(j=i+1:n)

y 1(j)=(y(j)-y(I))/(x(j)-x(I));

結束

c(I)= y 1(I+1);

l = l *(t-x(I));

f = f+c(I)* l;

簡化(f)

y = y 1;

如果(i==n-1)

if(nargin == 3)

f = subs(f,' t ',x0);

其他

f =收集(f);%展開插值多項式

f = vpa(f,6);

結束

結束

結束

==========

fn =牛頓([11 12],[0.190809 0.207912],11.5)

ans =

(616200515415341 * t)/36028797018963968+96413060822745/36028797018963968

fn =

0.1993605

& gt& gtfn =牛頓([11 12 13],[0.190809 0.207912 0.224951],11.5)

ans =

(616200515415341 * t)/36028797018963968+96413060822745/36028797018963968

ans =

-(1152921504607*t^2)/36028797018963968+(321358855010651 * t)/18014398509481984-55772577785379/36028797018963968

fn =

0.1993685

  • 上一篇:什麽是心靈向導?怎麽畫思維導圖?
  • 下一篇:計算機學科專業基礎綜合復習指南的目錄
  • copyright 2024編程學習大全網