MATLAB插  值  法

作者:凯鲁嘎吉 - 博客园
http://www.cnblogs.com/kailugaji/

一、实验目的

二、实验原理

三、实验程序

四、实验内容

五、解答

1. 程序

(1)Lagrange插值多项式

function [C, L,L1,l]=lagran1(X,Y)
%输出C为插值多项式的系数,L为插值多项式,L1为l的系数,l为小l
%输入数据表X=[];Y=[];行向量
m=length(X); L=ones(m,m);
for k=1: m
V=1;
for i=1:m
if k~=i
V=conv(V,poly(X(i)))/(X(k)-X(i));
end
end
L1(k,:)=V; l(k,:)=poly2sym (V);
end
C=Y*L1;L=Y*l;

(2)Newton插值多项式

function [A,C,L,wcgs,Cw]= newploy(X,Y)
n=length(X); A=zeros(n,n); A(:,1)=Y';
q=1.0; c1=1.0;
for j=2:n
for i=j:n
A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1));
end
b=poly(X(j-1));q1=conv(q,b); c1=c1*j; q=q1;
end
C=A(n,n); b=poly(X(n)); q1=conv(q1,b);
for k=(n-1):-1:1
C=conv(C,poly(X(k))); d=length(C); C(d)=C(d)+A(k,k);
end
L(k,:)=poly2sym(C); Q=poly2sym(q1);
syms M
wcgs=M*Q/c1; Cw=q1/c1;

2. 运算结果

(1)
>> X=[0:0.4:2];
>> Y=X.^4;
>> [C, L,L1,l]=lagran1(X,Y) C = 0.0000 1.0000 0 -0.0000 0 0 L = x^4 L1 = -0.8138 4.8828 -11.0677 11.7188 -5.7083 1.0000
4.0690 -22.7865 46.2240 -40.1042 12.5000 0
-8.1380 42.3177 -76.8229 55.7292 -12.5000 0
8.1380 -39.0625 63.8021 -40.6250 8.3333 0
-4.0690 17.9036 -26.6927 15.8854 -3.1250 0
0.8138 -3.2552 4.5573 -2.6042 0.5000 0 l = - (625*x^5)/768 + (625*x^4)/128 - (2125*x^3)/192 + (375*x^2)/32 - (137*x)/24 + 1
(3125*x^5)/768 - (4375*x^4)/192 + (8875*x^3)/192 - (1925*x^2)/48 + (25*x)/2
- (3125*x^5)/384 + (8125*x^4)/192 - (7375*x^3)/96 + (2675*x^2)/48 - (25*x)/2
(3125*x^5)/384 - (625*x^4)/16 + (6125*x^3)/96 - (325*x^2)/8 + (25*x)/3
- (3125*x^5)/768 + (6875*x^4)/384 - (5125*x^3)/192 + (1525*x^2)/96 - (25*x)/8
(625*x^5)/768 - (625*x^4)/192 + (875*x^3)/192 - (125*x^2)/48 + x/2
(2)
>> X=[0:0.4:2];
>> Y=X.^4;
>> [A,C,L,wcgs,Cw]= newploy(X,Y) A = 0 0 0 0 0 0
0.0256 0.0640 0 0 0 0
0.4096 0.9600 1.1200 0 0 0
2.0736 4.1600 4.0000 2.4000 0 0
6.5536 11.2000 8.8000 4.0000 1.0000 0
16.0000 23.6160 15.5200 5.6000 1.0000 0.0000 C = 0.0000 1.0000 0.0000 -0.0000 0.0000 0 L = (57*x^5)/18014398509481984 + x^4 + (209*x^3)/9007199254740992 - (525*x^2)/36028797018963968 + (213*x)/72057594037927936 wcgs = -(M*(- x^6 + 6*x^5 - (68*x^4)/5 + (72*x^3)/5 - (4384*x^2)/625 + (768*x)/625))/720 Cw = 0.0014 -0.0083 0.0189 -0.0200 0.0097 -0.0017 0

3. 拓展

function [y,R]=lagran2(X,Y,x,M)
%输入X=[];Y=[];行向量,x预测点,可以一个,也可以为矩阵x=[];M为x的个数,
n=length(X); m=length(x);
for i=1:m
z=x(i);s=0.0;
for k=1:n
p=1.0; q1=1.0; c1=1.0;
for j=1:n
if j~=k
p=p*(z-X(j))/(X(k)-X(j));
end
q1=abs(q1*(z-X(j)));c1=c1*j;
end
s=p*Y(k)+s;
end
y(i)=s;
end
R=M*q1/c1;

在MATLAB工作窗口输入程序

>> x=2*pi/9; M=1; X=[pi/6 ,pi/4, pi/3];

Y=[0.5,0.7071,0.8660]; [y,R]=lagran2(X,Y,x,M)

运行后输出插值y及其误差限R

y =

0.6434

R =

8.8610e-04

MATLAB插 值 法的更多相关文章

  1. 二值法方法综述及matlab程序

    在某些图像处理当中一个关键步是二值法,二值化一方面能够去除冗余信息,另一方面也会使有效信息丢失.所以有效的二值化算法是后续的处理的基础.比如对于想要最大限度的保留下面图的中文字,以便后续的定位处理. ...

  2. 栈的一个实例——Dijkstra的双栈算术表达式求值法

    Dijkstra的双栈算术表达式求值法,即是计算算术表达式的值,如表达式(1 + ( (2+3) * (4*5) ) ). 该方法是 使用两个栈分别存储算术表达式的运算符与操作数 忽略左括号 遇到右括 ...

  3. Python实现熵值法确定权重

    本文从以下四个方面,介绍用Python实现熵值法确定权重: 一. 熵值法介绍 二. 熵值法实现 三. Python实现熵值法示例1 四. Python实现熵值法示例2 一. 熵值法介绍 熵值法是计算指 ...

  4. NTC热敏电阻温度计算方法,Steinhart-Hart方程和B值法(转)

    NTC热敏电阻计算器使用方法 NTC热敏电阻计算器 V1.0 10K负温度系数热敏电阻(NTC)温度与阻值对应关系表 Rt = R(25℃)*EXP[B*(1/T - 1/(T+25))] 说明: 1 ...

  5. 熵值法 [异质指标同质化]中-Matlab 数据归一化预处理 mapminmax函数

    一.mapminmax Process matrices by mapping row minimum and maximum values to [-1 1] 意思是将矩阵的每一行处理成[-1,1] ...

  6. Java中调用MatLab返回值

    当在Java中使用MatLab函数时,由于语言语法的不同,Matlab返回多个数据时,想在Java中获取到并进行使用.查阅了网上资料,翻箱倒柜加上自己实战,得出方法如下: 如MatLab函数返回的是N ...

  7. E - Guess the Root 拉格朗日差值法+交互

    题目传送门 题意:告诉你存在一个未知项系数最高为10的$f(x)$,你最多可以有50次询问,每次询问给出一个$x'$,系统会返回你$f(x')$的值,你需要猜一个$x''$,使得$f(x'')=0$, ...

  8. JavaScript的取值小技巧之“中括号[]取值法”

    一.简介 做下记录,今天看了一篇很有意思的文章,学到了这个取值的小技巧 正常的话我们一般都是用对象直接去'.'对应的属性名(也就是键值对的键)来获取对应的值 这里记录的是另一种取值方式,他是采用中括号 ...

  9. 席位分配问题——惯例Q值法和d'hondt法的MATLAB程序

      本篇博文为追忆以前写过的算法系列第四篇 温故知新 本篇于2009年发表于百度博客,当时还没接触CSDN.所以是文学和技术博客混淆,只是这个程序博文訪问量突破2000,有不少网友评论互动.应该 ...

随机推荐

  1. ClickHouse之初步认识

    最近在Percona的blog上看到一篇文章:Column Store Database Benchmarks: MariaDB ColumnStore vs. Clickhouse vs. Apac ...

  2. 通过 URL 打开 Activity

    为每个 Activity 绑定一个 url 可以方便的让第三方 app 直接打开这些 Activity.也可以方便在 app 内部进行页面跳转,解耦. 背景 举一个常见的案例,假设我们有个产品 A,产 ...

  3. 分布式计算框架Spark

    Apache Spark是一个开源分布式运算框架,最初是由加州大学柏克莱分校AMPLab所开发. Hadoop MapReduce的每一步完成必须将数据序列化写到分布式文件系统导致效率大幅降低.Spa ...

  4. MySQL中的事务及读写锁实现并发访问控制

    一.并发控制中锁的概念 锁是并发控制中最核心的概念之一,在MySQL中的锁分两大类,一种是读锁,一种是写锁,读锁也可以称为共享锁(shared lock),写锁也通常称为排它锁(exclusive l ...

  5. MySQL实验准备(一)--环境准备

    MySQL实验脚本准备(一) python操纵数据库的实验环境 安装pip 1.下载脚本文件 [root@db01 .vnc]# wget https://bootstrap.pypa.io/get- ...

  6. win10 uwp 渲染原理 DirectComposition 渲染

    本文来告诉大家一个新的技术DirectComposition,在 win7 之后(实际上是 vista),微软正在考虑一个新的渲染机制 在 Windows Vista 就引入了一个服务,桌面窗口管理器 ...

  7. (3)Jquery1.8.3快速入门_jquery对象dom对象转换

    1.Jquery 对象 dom对象的转化使用: 1.1.jquery 对象: 通过$()包装DOM对象后产生的对象. 1.2.jquery对象是Jquery独有的 ,可以使用jquery中的方法. 1 ...

  8. JavaSE 常用类与其方法

    1.基本数据类型比较用:== 2.引用数据类型比较用:equals方法 如果引用数据类型使用==比较的话,比较的是地址值 toString类 对象调用toString()需要重写本方法: 在封装类中, ...

  9. Python 简单分页思路

    一: li = [] for i in range(1000): li.append(i) while True: p = input('input page: ') p = int(p) start ...

  10. java获取文件路径

    情况:工程项目没有放到tomcat下,在eclipse运行 1.获取项目根目录,根据在哪里运行 2. 3.从最终生成的.class文件为着手点 4.在controller下