数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)
一、实验目的
在已知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插值多项式.
五、实验程序
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
五、运算结果
数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)的更多相关文章
- 数值计算方法实验之newton多项式插值 (Python 代码)
一.实验目的 在己知f(x),x∈[a,b]的表达式,但函数值不便计算或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)=yi (i=0,1,……, n)求出简单函 ...
- 数值计算方法实验之Hermite 多项式插值 (Python 代码)
一.实验目的 在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单 ...
- 数值计算方法实验之Newton 多项式插值(MATLAB代码)
一.实验目的 在己知f(x),x∈[a,b]的表达式,但函数值不便计算或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)=yi (i=0,1,……, n)求出简单函 ...
- 数值计算方法实验之Lagrange 多项式插值 (Python 代码)
一.实验目的 在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单 ...
- 数值计算方法 | C语言实现几个数值计算方法(实验报告版)
目录 写在前面 实验一 牛顿插值方法的实现 实验二 龙贝格求积算法的实现 实验三 高斯列主元消去法的实现 实验四 最小二乘方法的实现 写在前面 使用教材:<数值计算方法>黄云清等编著 科学 ...
- Python 实验报告(第三周)
一.实验目的和要求 1.熟练运用常见选择结构: 2.熟练运用for循环和while循环: 3.理解带else语句的循环结构执行过程和break.continue语句在循环中的作用. 二.实验环境 软件 ...
- [转] 三种Python下载url并保存文件的代码
原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib ...
- 页面三个txt加载联动省市县的代码,类似淘宝的收货地址的布局
页面三个txt加载联动省市县的代码,假如有一个树形的JSON,分别显示的省市县这时候三个TXT怎么做联动效果呢,这里用framework7为例HTML: <div class="lis ...
- 三种动态加载js的jquery实例代码另附去除js方法
!-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js&quo ...
随机推荐
- mongodb服务器启动
以配置文件启动服务器: mongod --config /usr/local/mongodata/config/mongodb.conf(配置文件路径) 客户端启动: mango 关闭mongodb的 ...
- 局部变量表中Slot复用对垃圾回收的影响详解
看两段代码 1. package com.jvm; public class Test { public static void main(String[] args) { { byte[] plac ...
- NKOJ4241 蚯蚓 (【NOIP2016 DAY2】)
问题描述 输入格式 第一行包含六个整数n,m,q,u,v,t,其中:n,m,q的意义见问题描述: u,v,t均为正整数:你需要自己计算p=u/v(保证0<u<v)t是输出参数,其含义将会在 ...
- C/C++知识总结 二 C/C++基础知识
C/C++基础知识 C/C++基本格式说明 C/C++基本常识说明 C/C++基本格式说明 C语言基本格式 #include<stdio.h> //预处理文件 int main() //自 ...
- js中常见的数据加密与解密的方法
加密在我们前端的开发中也是经常遇见的.本文只把我们常用的加密方法进行总结.不去纠结加密的具体实现方式(密码学,太庞大了). 常见的加密方式 常见的加密算法基本分为这几类, 线性散列算法(签名算法)MD ...
- .net core 集成 sentry 进行异常报警
.net core 集成 sentry 进行异常报警 Intro Sentry 是一个实时事件日志记录和汇集的平台.其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈.它分为客户端和 ...
- c期末笔记(1)
运算符 1.i++与++i的细微区别 i++与++i 和i++放在一个语句中,则i原本的值先被利用.语句结束后,i的值加一. i的原始值失效,直接加一. 2.int加法 整形数据(int)加上任何类型 ...
- java电商项目常见异常
1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...
- HttpClient来自官方的JSON扩展方法
System.Net.Http.Json Json的序列化和反序列化是我们日常常见的操作,通过System.Net.Http.Json我们可以用少量的代码实现上述操作.正如在github设计文档中所描 ...
- php--MongoDB的使用
添加 $collection = (new MongoDB\Client)->test->users; // 增加一条 $insertOneResult = $collection-> ...