一、实验目的

    在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单函数P(x)(常是多项式),使其在插值基点xi,处成立P(xi)= yi(i=0,1,……,n),而在[a,b]上的其它点处成立f(x)≈P(x).

二、实验原理

 

三、实验程序

  

四、实验内容

  求之f(x)=x4在[0,2]上按5个等距节点确定的Lagrange插值多项式.

五、实验程序

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
syms x
f(x)=x^4;
a=0;
b=2;      %左右断点值
n=4;      %节点数为n+1
h=(b-a)/n;%h为相邻节点间的间距
u=1/2;
v=1/2;    %等距节点下u,v的值一直为1/2
d=zeros(n+1,1);
D=zeros(n+1,n+1);
S=cell(4,1);
d(1)=12/h*((f(a+h)-f(a))/h-subs(diff(f(x)),x,a));
d(n+1)=12/h*(subs(diff(f(x)),x,b)-(f(b)-f(b-h))/h);
D(n+1,n+1)=4;
for i=2:n
    d(i)=12*((f(a+h*i)-f(a+h*(i-1)))/h-(f(a+h*(i-1))-f(a+h*(i-2))/h))/(2*h);
end
for j=1:n
    D(j,j)=4;
    D(j,j+1)=v;
    D(j+1,j)=u;
end
M=linsolve(D,d);
for k=1:n
    s1=M(k,1)*(a+h*k-x)^3/(6*h)+M(k+1,1)*(x-a-h*(k-1))/(6*h)+f(a+h*(k-1)-M(k,1)*h*h/6)*((a+h*k-x)^3/(6*h)+M(k+1,1)*(x-a-h*(k-1)))/h+(f(a+h*k)-M(k+1,1)*h*h/6)*(x-a-h*(k-1))/h;
    s2=vpa(s1,4);
    S{k,1}=char(s2);
end

 

五、运算结果 

    

 

 posted on   ぺあ紫泪°冰封ヤ  阅读(1540)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
Live2D
欢迎阅读『数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)』
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多