Mathematica 之 “数值积分方法”
事实上,由积分中值定理可求得梯形求积公式的截断误差:
f ' ' ( ) b R1 ( x a)( x b)dx a 2! f ' ' ( ) (b a)3 , a b 12
辛普生求积公式的截断误差
由积分中值定理可求得辛普生求积公式的截断误差:
2
R2
f
( 4)
n 段 :
a x0 x1 x2 xn1 xn b
在每个小区间 [xi-1, xi] ( i = 1, …, n)上应用求积法则,将 得到复化求积法则。
复化中点法则
xi 1 xi I ( f ) M ( f ) xi xi 1 f 2 i 1
第 4 节 数值积分方法
4.1 数值积分的概念
关于积分,有Newton-Leibniz公式
b
a
f ( x)dx F (b) F (a)
但是,在很多情况下,还是要数值积分:
1、函数有离散数据组成 2、F(x)求不出 3、F(x)非常复杂 定义数值积分如下:是离散点上的函数值的线性组合
I n ( f ) ai f ( xi )
i 1
n
f ( xi 1 ) f ( xi ) 2
复化梯形积分公式
做等距节点
ba h , xi a ih, i 0, , n n
xi1
xi
h h3 f ( x) ( f ( xi ) f ( xi 1 )) f ' ' (i ) 2 12
n 1
h h3 Tn ( f ) ( f ( xi ) f ( xi 1 )) f ' ' ( i ) 12 i 0 2 n 1 1 1 n 1 h 3 h f (a) f ( xi ) f (b) f ' ' ( i ) 2 i 1 2 i 0 12
i 0
n
称为积分系求和 有限求和
被积函数在有限个点上取样 求积法则(quadrature rule)
n -点求积规则(通过 n 点的计算) :
I ( f ) wi f ( xi ) Rn
i 1
n
I ( f ) wi f ( xi )
b
a b f (b) f (a ) ( x a)( x b) f 2 2
b
I ( f ) f ( x)dx p3 ( x)dx
a a
a b f (b) f (a) b ( x a)( x b)dx f 2 a a 2 ba ab f ( a ) 4 f ( ) f ( b ) 6 2
梯形法则
f (b) f (a) p2 ( x ) f ( a ) ( x a) ba
I ( f ) f ( x)dx p2 ( x)dx
a a b b
f (b) f (a) f (a) ( x a) dx a ba ba f (b) f (a) 2
自适应求积
例如:在整个最初区间上使用求积法则;
如果误差要求达不到,将区间二分割,在每一个子区间上应用求
积法则。 如果两个子段上的误差之和仍达不到要求,将误差最大的区间进 一步二分割,在每一个子区间上应用求积法则。 直到误差要求最终达到。
自适应求积
在被积函数变化最迅速的区域取样最密集。
这样一种自适应策略构成了大多数积分子程序的基础。
设
, x3 (a b) / 2
z j 1
f j 1 p j 1 ( x j 1 )
可得三点牛顿插值多项式:
j 1 ( x j 1 )
p3 ( x) p2 ( x) z33 ( x) y3 p2 ( x3 ) p2 ( x ) 3 ( x) 3 ( x3 ) y3 p2 ( x3 ) p2 ( x ) ( x x1 )( x x2 ) ( x3 x1 )( x3 x2 )
自适应数值积分计算
①先看看事后误差估计(不同的误差表达式,事后误差估计式是不同的) 以复化梯形公式为例
I ( f ) Tn ( f )
(b a) 2 h f ' ' ( ) 12
2
n等分区间
(b a) h I ( f ) T2 n ( f ) f ' ' ( ) 12 2
正确的四舍五入结果 : 0.746842
几种计算结果的比较:
4.2.1
误差估计
通过泰勒级数展开的方法进行估计 : 在中点
m (a b) / 2 附近展开:
f ' ' ( m) ( x m) 2 2! ( 4) f ' ' ' ( m) f ( m) ( x m) 3 ( x m) 4 3! 4!
n
与中点法则相联系的误差估计
与子区间[xi-1, xi]相联系的误差是:
1 (b a) 3 Ri f ' ' (m)x , x 24 n
在区间 [a,b] 上总的误差为:
nRi nx O(n 2 )
3
复化梯形法则
I ( f ) T ( f ) xi xi 1
2 1 1/ 2 e dx ( e e ) 2.185 2 1
2
1 x
1 x 2 1 x f ( x) e , f ' ( x) 2 e , f ' ' ( x) 3 4 e x x x
1 x
1
1
max f ' ' ( x) f ' ' (1) 8.1548
其中
k xk 8
运算量基 本相同
= 3.138988494
k 1 S4 f (0) 4 f ( xk ) 2 f ( xk ) f (1) 其中 xk 24 8 odd even
= 3.141592502
4.3.2 自适应求积
函数变化有急有缓,为了照顾变化剧烈部分的误差,我们需要加 密格点。对于变化缓慢的部分,加密格点会造成计算的浪费。建立一 种算法,可以自动在变化剧烈的地方加密格点计算,而变化缓慢的地 方,则取稀疏的格点。 带有误差估计的复化求积法则可以用于产生一个自动求积程序: 通过继续分割子区间,直到误差估计达到要求的数值之下。
误差
复化辛普生积分公式的误差估计
在子区间 [xi-1, xi]
上的误差 :
5
Ri f (iv) (m)x
在区间 [a,b] 上总的误差:
nRi O(n4 )
数值积分举例
例:计算
4 dx 0 1 x2
1
7 1 解:T8 f (0) 2 f ( xk ) f (1) 16 k 1
b
4 p 2( x)dx ( a b) 2
例4.1 求下面积分近似 : 数值结果 :
I ( f ) e dx
x2 0
1
M ( f ) (1 0)e 0.25 0.778801
1 0 1 T ( f ) (e e ) 0.683940 2
1 0 S ( f ) (e 4e 0.25 e 1 ) 0.747180 6
f ( x) f (m) f ' (m)( x m)
从a到b对x积分,再将m=(a+b)/2代入得(x偶次幂项为零):
f ' ' (m) f ( 4) (m) 3 I ( f ) f (m)(b a) (b a) (b a)5 24 1920
梯形求积公式的截断误差
( ) ab ( x a) x ( x b)dx a 4! 2
b
f ( 4 ) ( ) (b a)5 , a b 2880
数值积分及误差计算举例
例题:试梯形公式计算积分 解:用梯形公式计算:
e
1
2
1 x
dx
的近似值,并估计截断误差。
n 1
2h ( 2h) 5 ( 4 ) S n ( f ) ( f ( x2i ) f ( x2i 1 ) f ( x2i 2 )) f ( i ) 2880 i 0 6 m 1 m 1 h m1 (2h)5 ( 4) f (a) 4 f ( x2i 1 ) 2 f ( x2i ) f (b) f (i ) 3 i 0 i 1 i 0 2880
近似有: f ' ' ( )
2n等分区间
1 f ' ' ( ) I ( f ) T2 n ( f ) T2 n ( f ) Tn ( f ) 3 1 类似,复化Simpsom公式 I ( f ) S 2 n ( f ) S2n ( f ) Sn ( f ) 15
梯形法则
两点求积法则 梯形法则 :
ba I( f ) T( f ) ( )[ f (a) f (b)] 2
梯形法则的说明: 给定:
( x1 , y1 ) (a, f (a)); ( x2 , y2 ) (b, f (b))
可得两点牛顿插值多项式:
p2 ( x) p1 ( x) z 22 ( x) y2 p1 ( x2 ) y1 2 ( x ) 2 ( x2 ) y2 y1 y1 ( x x1 ) x2 x1
Simpson’s 法则
f (b) f (a ) a b ab f a f (a) ba 2 2 p2 ( x ) ( x a )( x b) ab a b a b 2 2 4 p2 ( x ) ( a b) 2
Mathematica计算Pi的值
Mathematica计算π的值姓名: 学号: 班级:实验目的学习使用Mathematica软件的一些基本功能计算π的值,以下通过三种不同的方法求解π:1.数值积分法2.泰勒级数法3.蒙特卡洛(Monte Carlo)方法实验的基本原理和方法1.Mathematica中常用绘图函数Plot在绘制高次函数时的方法;2.计算圆周率π的数值积分法、泰勒级数法、蒙特卡洛(Monte Carlo)方法,并且利用特定的公式来计算圆周率π。
实验的内容和步骤(1)数值积分法计算π半径为1的圆称为单位圆,它的面积等于π。
只要计算出单位圆的面积,就算出了π。
在坐标轴上画出以圆点为圆心,以1为半径的单位圆(如下图),则这个单位圆在第一象限的部分是一个扇形,而且面积是单位圆的1/4,于是,我们只要算出此扇形的面积,便可以计算出π。
1.1.Mathematica输入如下:Plot[{4(1-x*x)},{x,0,1}]图1在计算扇形面积时,很容易想到使用数学分析中积分的方法,第一象限中的扇形由曲线])1,0[(12∈-=x x y 及两条坐标轴围成,实际操作中,我们不能准确地计算它的面积,于是就通过分割的方法,将其划分为许多小的梯形,通过利用梯形的面积近似于扇形面积来计算41102π=-=⎰dx x S 。
利用Mathematica 编程计算上式:运行结果如下:图2从而得到 的近似值为3.14159265358979323846264338328,可以看出,用这种方法计算所得到的值π是相当精确的。
n 越大,计算出来的扇形面积的近似值就越接近π的准确值。
2.泰勒级数法计算π反正切函数的泰勒级数 +--+-+-=--12)1(53a r c t an 12153k x x x x x k k 计算π,实验运行如下:从实验过程可以看出,这种方法花费的时间很长。
原因是当x=1时得到的arctan1的展开式收敛太慢。
要使泰勒级数收敛得快,容易想到,应当使x 的绝对值小于1,最好是远比1小。
Mathematica实习四定积分以及相关应用问题
472 实习四 定积分以及相关应用问题实习目的1.掌握用Mathematica 求定积分2.用定积分求面积、平面曲线的弧长和旋转体的体积。
实习准备1.定积分的运算在不定积分中加入积分的上下限便成为定积分(definite integral)。
Mathematica 的定积分命令和不定积分的命令相同,但必须指定积分变量的上下限。
(1) Integrate[f,{x,下限,上限}](2) ⎰dx x f b a )(例1 计算定积分⎰-dx xx 151。
解 dx xx In 1:]1[51-=⎰ Out[1]=4-2ArcTan[2]和不定积分一样,除了我们指定的积分变量之外,其它所有符号都被作常数处理.例2 计算定积分⎰+dx e x a x 3220。
解 dx a xExp x In ]3[:]2[220+=⎰ 2726272]2[6aa e e Out ++-= 1 数值积分如果Mathematica 无法解出积分的符号表达式或者定积分的结果过于冗长而失去意义时,我们就可以用数值积分求解。
数值积分只能进行定积分的运算,即必须指定上、下限。
用Mathematica 求解数值积分有两种形式:(1) NIntegrate[f,{x,a,b}] x 从a 到b ,做)(x f 的数值积分。
(2) N[⎰dx x f b a )(] 求定积分表达式的数值例3 求定积分⎰dx x )sin(sin 30π。
解 用Integrate 命令无法求)sin(sin x 的定积分,用NIntegrate 命令即可求得473其数值积分。
In[1]:=NIntegrate[Sin[Sin[x]],{x,0,Pi/3}]Out[1]=0.466185求定积分表达式的数值,也能得到与上式相同的结果。
]dx ]]Sin[Sin[N[:]2[In 3/0x Pi ⎰=Out[2]=0.466185例4 求定积分dx e x 210-⎰的近似值。
(完整版)Mathematica数值分析和数值计算
第五章 数值分析和数值计算1. 如何求插值多项式给定n 个点( x i ,y i ),(i=1,2,…,n),构造一个次数不超过n-1的多项式函数f(x),使得f(x i )=y i ,则称f(x)为拉格朗日插值多项式。
可以证明该多项式函数由公式))...()(())...()((...))...()(())...()(())...()(())...()((1211212321231113121321--------++------+------=n n n n n n n n n n x x x x x x x x x x x x y x x x x x x x x x x x x y x x x x x x x x x x x x y y唯一给定。
Mathematica 提供了根据插值点数据计算拉格朗日插值多项式的函数InterpolatingPolynomial ,下面是其调用格式:InterpolatingPolynomial[data,var]作出以data 为插值点数据,以var 为变量名的插值多项式。
例:在多数情况下,我们构造插值函数的目的在于计算函数f(x)的值,而并不在意插值多项式的具体表示形式。
对于拉格朗日插值多项式,当n 较大时,得到的高次插值多项式由于截断误差和舍入误差的影响,往往误差较大。
此时在实际应用中,一般采用分段插值。
Mathematica 提供了分段插值函数Interpolation ,其使用格式为:Interpolation[data,InterpolationOrder->n]这里InterpolationOrder->n 指定插值多项式的次数,默认值为3。
此外数据data 中还可以包括插值点处的导数,格式为:{{x1,{y1,dy1}},{x2,{y2,dy2}},…}例:已知f(0)=0,f(1)=2,f’(0)=1,f’(1)=1,求3次插值多项式f(x),并计算f(0.72)和画出函数f(x)在[0,1]区间上的图形。
Mathematica数学入门教程【12】-积分
Mathematica数学入门教程【12】-积分
在本教程中可以学会在 Mathematica 下怎样用 Wolfram 语言来解决典型的数学问题, 从基本的算术计算到微积分, 涵盖了从 K12 到大学及其以后科学研究各个阶段内容.
通过学习本教程, 学生在数学的各个层次都可以掌握相关如何用Wolfram 语言进行计算, 绘制图形和制作演示文档, 以此来锻炼在未来职场中所需的计算思维和能力.
译自: FAST INTRODUCTION FOR MATH STUDENTS 英文教程
好了, 现在让我们在下一篇的Mathematica快速数学入门课堂再见. 这里感谢各位每一位看到这里的老师和朋友!
Thank You, Everyone! Happy Weekend!
图片设计: 新浪账号@神烦咕
本入门教程全部内容:
1 - 指令的输入
2 - 分数与小数
3 - 变量和函数
4 - 代数
5 - 2D绘图
6 - 几何绘图
7 - 三角学
8 - 极坐标
9 - 指数函数和对数
10 - 极限
11 - 微分
12 - 积分
13 - 序列
14 - 求和
15 - 级数
16 - 更多2D绘图
17 - 3D绘图
18 - 多元微积分
19 - 矢量分析和可视化
20 - 微分方程
21 - 复分析
22 - 矩阵和线性代数
23 - 离散数学
24 - 概率
25 - 统计
26 - 数据图和最佳拟合曲线
27 - 群论
28 - 数学智力题
29 - 互动模式
30 - 数学排版
31 - 笔记本文档
32 - 云部署。
2703数学软件mathematics计算函数积分.
例题:
计算下列定积分:
(1) 1 x2dx 0
11
(2) 11 x2 dx
4
(4)
1
dx
a
(5)
a2 x2 dx
0 2x 1
0
(3) 11dx
2 x
1
(6)0 arcsin xdx
例题:
(1) 1 x2dx
解: 0
11
(2) 11 x2 dx
1 1
(3) dx
(1) x ln xdx (2) ex sin xdx
(3) tan x5 sec x5dx (4) 1 dx
x2 a2
1
(5) x
dx x2 9
x2
(6) (x2 2x 2)2 dx
例题:
解:1.打开Mathematica,新建文档 2.输入指令: 3.shift+enter 输出结果
2 x
例题:
41
(4)
dx
解: 0 2x 1
a
(5)
a2 x2 dx
0
1
(6)0 arcsin xdx
思考题:
计算下列不定积分和定积分:
(1) cos(3x)cos(2x)dx
ln 2
(2) 0
ex 1dx
谢谢
(1) x ln xdx (2) ex sin xdx
(3) tan x5 sec x5dx (4) 1 dx
x2 a2
1
(5)
x
dx x2 9
x2
(6) (x2 2x 2)2 dx
03求定积分
求定积分,命令语法格式: Integrate[f, {x, Subscript[x, min], Subscript[x, max]}]
Mathematica微积分运算命令与例题
第四章微积分运算命令与例题极限、导数和积分是高等数学中的主要概念和运算,如果你在科研中遇到较复杂的求极限、求导数或求积分问题,Mathematica 可以帮你快速解决这些问题。
Mathematica 提供了方便的命令使这些运算能在计算机上实现,使一些难题迎刃而解。
4.1 求极限运算极限的概念是整个高等数学的基础,对表达式进行极限分析也是数学里很重要的计算分析。
Mathematica 提供了计算函数极限的命令的一般形式为:Limit[函数, 极限过程]具体命令形式为命令形式1:Limit[f, x->x0]功能:计算()x f lim 0x x → , 其中f 是x 的函数。
命令形式2:Limit[f, x->x0, Direction->1]功能:计算()x f lim 0-x x →,即求左极限, 其中f 是x 的函数。
命令形式3:Limit[f, x->x0, Direction->-1]功能:计算()x f lim 0x x +→,即求右极限,其中f 是x 的函数。
注意:在左右极限不相等或左右极限有一个不存在时,Mathematica 的默认状态为求右极限。
例题:例1. 求极限())11ln 1(lim 221--→x x x x 解:Mathematica 命令为In[1]:=Limit[1/(x Log[x]^2)-1/(x-1)^2, x->1]Out[1]=121 此极限的计算较难,用Mathematica 很容易得结果。
例2. 求极限nn n ⎪⎭⎫ ⎝⎛+∞→11lim 解:Mathematica 命令为In[2]:=Limit[(1+1/n)^n, n->Infinity]Out[2]=E例3 写出求函数xe 1在x->0的三个极限命令解:Mathematica 命令为1.Limit[Exp[1/x], x->0]2.Limit[Exp[1/x], x->0, Direction->1]3.Limit[Exp[1/x], x->0, Direction->-1]读者可以比较其结果,观察区别。
mathematica数值计算
mathematica数值计算Mathematica是一款强大的数学计算软件,可以进行各种数值计算和符号计算。
本文将介绍Mathematica在数值计算方面的应用。
一、数值计算的基础在Mathematica中,我们可以使用各种内置函数进行数值计算。
比如,我们可以使用N函数将一个表达式或方程转化为数值,并指定精度。
例如,我们可以计算sin(π/4)的数值:N[Sin[π/4]]结果为0.707107。
二、数值积分Mathematica提供了强大的数值积分功能。
我们可以使用NIntegrate函数对函数进行数值积分。
例如,我们可以计算函数f(x) = x^2在区间[0, 1]上的积分:NIntegrate[x^2, {x, 0, 1}]结果为0.333333。
三、数值方程求解Mathematica还可以解决各种数值方程。
我们可以使用NSolve函数对方程进行数值求解。
例如,我们可以求解方程x^2 - 2x + 1 =0的解:NSolve[x^2 - 2x + 1 == 0, x]结果为{{x -> 1}},即方程的解为x=1。
四、数值优化Mathematica也可以进行数值优化。
我们可以使用NMinimize函数对一个函数进行最小化。
例如,我们可以求解函数f(x) = x^2的最小值:NMinimize[x^2, x]结果为{x -> 0.},即函数的最小值为0。
五、数值微分Mathematica还提供了数值微分的功能。
我们可以使用ND函数对函数进行数值微分。
例如,我们可以计算函数f(x) = x^2的导数在x=1的值:ND[x^2, x, 1]结果为2,即函数在x=1处的导数为2。
六、数值级数求和Mathematica可以对级数进行数值求和。
我们可以使用NSum函数对级数进行数值求和。
例如,我们可以计算级数1/2^k的和:NSum[1/2^k, {k, 1, ∞}]结果为1,即级数的和为1。
Mathematica数值分析
NSum 10 + i, i, 1, 2, 0.1 126.5
@8 < D
@8 < D @8 < D
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
2、极值 FindMinimum[f,{x,x0}]从初值 从初值x=x0开始寻找函数 开始寻找函数f 从初值 开始寻找函数 的极小值 FindMinimum[f,{x,x0},{y,y0},…]从初值 从初值(x0,y0,…)开 从初值 开 始寻找寻找函数f的极小值 始寻找寻找函数 的极小值 对于FindMinimum[],选取不的初值可能会得 对于 , 到不同的极值, 到不同的极值,例如
上页 下页 退出
In[1]:=
NSum
哈 工 程 大 学 数 值 计 算 软 件
Out[8]=
In[9]:= Out[9]=
Out[6]=
Out[1]=
0.926025 In[6]:= NSum i + j, i, 1, 10, 0.5 , j, 1, 21, 2
H H 8 D @ L L < @8 < < 8 D
d = 1, 2 , 3, 7 , 5, 9 , 7, 15 , 9, 35 , 11, 80 , 13, 150 ; x =.; f x_ = Fit d, 1, x, Log x , x - 13.0035 + 23.7089 x - 65.4063 Log x
d = 1, 2, 3 , 4, 5, 6 , 5, 6, 7 , 6, 7, 8 , 7, 8, 9 ; y =.; Fit d, 1, x, y, x y, x^2, y^2 , x, y
x - 1.81626 , x 1.00417 FindRoot x^2 + y^2 4, Exp x + Exp y + Sin x + Sin y 1 , x, -2 , y, 0
MATHEMATICA在高等代数与微积分中的应用
MATHEMATICA在高等代数和微积分中的使用1 高等代数运算1.1 矩阵的输入①、表输入:例:输入矩阵123456789 A⎛⎫⎪= ⎪⎪⎝⎭命令:A={{1,2,3},{4,5,6},{7,8,9}}不过,我们看到输出的结果不是矩阵形式,如果希望得到矩阵形式,可再使用函数MatrixForm,如:或者:②、二阶方阵可直接用模板输入——单击输入面板上的“”,再输入矩阵的元素即可,例如,求矩阵的逆:求矩阵逆的函数是:Inverse ,或:或:③、菜单来输入.操作:“输入”→“创建表单/矩阵/面板[T ]…” ⇒ 对话框→选择“矩阵”→ 输入行数和列数→ ⇒ 空白矩阵.计算结果如下图示:例:④、增加行和列按Ctrl+ Shift +“,”; 增加行,Ctrl+“↵”增加列。
⑤、输入任意矩阵 例:输入任意矩阵11122122a a A a a ⎛⎫=⎪⎝⎭,可用命令:Array[a,{2,2}] // MatrixForm ⑥、创建一个n 阶单位矩阵:IdentityMatrix[n] ⑦、创建一个对角线上为表list 的元素的方阵:DiagonalMatrix[ list ]例: a1={1,2,3,4,5}DiagonalMatrix[a1 ] // MatrixForm1.2 MATHEMATICA 的矩阵运算命令(1) a={a1,a2,…,an}功能:定义一个一维向量(12n a ,a ,,a ),这里12n a ,a ,,a 是数或字母.(2) a=Table[f[j],{j,n}]例:(3) a={{a 11,a 12,…,a 1n },{a 21,a 22,…,a 2n },…,{a m1,a m2,…,a mn }}功能: 定义一个矩阵: 1111n m mn a a a a a ⎛⎫⎪= ⎪ ⎪⎝⎭例:(4) a=Table[f[i,j],{i ,m},{j ,n}]功能: 定义一个分量可以用f[i,j]计算的矩阵,其中f 是关于i和j 的函数,给出矩阵在第i 行第j 列的元素值. 例:(5) MatrixForm[a]功能:把a按通常的矩阵或向量形式输出,其中a是矩阵或向量.(6) DiagonalMatrix[list]功能:使用列表中list的元素生成一个对角矩阵.例:(7) IdentityMatrix[n]功能:生成n阶单位阵(8) A+B功能:求A和B的和, 这里A和B都是矩阵或都是向量.(9) A-B功能:求A和B的差.这里A和B都是矩阵或都是向量.(10) k*A功能:求常数k和A的数乘,这里A是矩阵或向量.(11) A.B功能:求矩阵A和矩阵B的乘积,注意A和B之间的乘号“.”必须使用数字键盘上的小数点.(12) a.b功能:求向量a和向量b的内积,注意a和b之间的乘号“.”必须使用数字键盘上的小数点.(13) A.b或b.A功能:求矩阵A和向量b的乘积,注意A和b之间的乘号“.”必须使用数字键盘上的小数点.(14). Transpose[A]功能:求矩阵A的转置矩阵.(15). Inverse[A]功能:求矩阵A的逆矩阵(16). MatrixPower[A,n]功能:计算方阵A的n次幂.(17). Det[A]功能:求方阵A的行列式(18) a[[i, j]]功能:取矩阵a的位于第i行,第j列的元素.(19). a[[i]]功能:取矩阵a的第i行的所有元素或取向量a的第i个分量.(20) Transpose[a][[j]]功能:取矩阵a的第j列的所有元素.1.3 多项式运算命令①PolynomialGCD[f,g]功能:求多项式f、g的最大公因式。
(完整版)Mathematica数值分析和数值计算
第五章 数值分析和数值计算1. 如何求插值多项式给定n 个点( x i ,y i ),(i=1,2,…,n),构造一个次数不超过n-1的多项式函数f(x),使得f(x i )=y i ,则称f(x)为拉格朗日插值多项式。
可以证明该多项式函数由公式))...()(())...()((...))...()(())...()(())...()(())...()((1211212321231113121321--------++------+------=n n n n n n n n n n x x x x x x x x x x x x y x x x x x x x x x x x x y x x x x x x x x x x x x y y唯一给定。
Mathematica 提供了根据插值点数据计算拉格朗日插值多项式的函数InterpolatingPolynomial ,下面是其调用格式:InterpolatingPolynomial[data,var]作出以data 为插值点数据,以var 为变量名的插值多项式。
例:在多数情况下,我们构造插值函数的目的在于计算函数f(x)的值,而并不在意插值多项式的具体表示形式。
对于拉格朗日插值多项式,当n 较大时,得到的高次插值多项式由于截断误差和舍入误差的影响,往往误差较大。
此时在实际应用中,一般采用分段插值。
Mathematica 提供了分段插值函数Interpolation ,其使用格式为:Interpolation[data,InterpolationOrder->n]这里InterpolationOrder->n 指定插值多项式的次数,默认值为3。
此外数据data 中还可以包括插值点处的导数,格式为:{{x1,{y1,dy1}},{x2,{y2,dy2}},…}例:已知f(0)=0,f(1)=2,f’(0)=1,f’(1)=1,求3次插值多项式f(x),并计算f(0.72)和画出函数f(x)在[0,1]区间上的图形。
