当前位置:文档之家› 哈工大_计算方法实验_1拉格朗日

哈工大_计算方法实验_1拉格朗日

哈工大_计算方法实验_1拉格朗日
哈工大_计算方法实验_1拉格朗日

实验题目1 Lagrange插值

摘要

给定平面上n+1个不同的数据点:

则满足条件

的n次拉格朗日插值多项式

是存在唯一的。

若,且充分光滑,则当时,有误差估计式

前言

利用拉格朗日插值多项式求的近似值

程序设计流程

拉格朗日插值框图

问题1 (1)

N = 5时,程序运行如下:

TestLag(inline('1./(1+x.^2)'), -5, 5, 5, 0.75:4.75);

将区间[-5,5]分为了5段

计算插值的点xi =

0.7500 1.7500 2.7500 3.7500 4.7500 计算出的插值yi =

0.9054 0.5258 0.0096 -0.3568 -0.1595 插值点处函数值yFact =

0.6400 0.2462 0.1168 0.0664 0.0424 计算误差err =

-0.2654 -0.2796 0.1072 0.4232 0.2020

N = 10时,程序运行如下:

TestLag(inline('1./(1+x.^2)'), -5, 5, 10, 0.75:4.75);

将区间[-5,5]分为了10段

计算插值的点xi =

0.7500 1.7500 2.7500 3.7500 4.7500 计算出的插值yi =

0.6907 0.2330 0.1122 0.1084 -0.2360 插值点处函数值yFact =

0.6400 0.2462 0.1168 0.0664 0.0424 计算误差err =

-0.0507 0.0132 0.0045 -0.0420 0.2785

N = 20时,程序运行如下:

TestLag(inline('1./(1+x.^2)'), -5, 5, 20, 0.75:4.75);

将区间[-5,5]分为了20段

计算插值的点xi =

0.7500 1.7500 2.7500 3.7500 4.7500 计算出的插值yi =

0.6413 0.2491 0.1282 0.1903 6.4150 插值点处函数值yFact =

0.6400 0.2462 0.1168 0.0664 0.0424 计算误差err =

-0.0013 -0.0029 -0.0114 -0.1239 -6.3726

问题1 (2)

N = 5时,程序运行如下:

TestLag(inline('exp(x)'), -1, 1, 5, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了5段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.3863 0.9513 1.0512 2.5863

插值点处函数值yFact =

0.3867 0.9512 1.0513 2.5857

计算误差err =

1.0e-003 *

0.4471 -0.1051 0.1069 -0.6129

N = 10时,程序运行如下:

TestLag(inline('exp(x)'), -1, 1, 10, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了10段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.3867 0.9512 1.0513 2.5857

插值点处函数值yFact =

0.3867 0.9512 1.0513 2.5857

计算误差err =

1.0e-008 *

-0.3126 -0.0055 -0.0055 -0.3714

N = 20时,程序运行如下:

TestLag(inline('exp(x)'), -1, 1, 20, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了20段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.3867 0.9512 1.0513 2.5857

插值点处函数值yFact =

0.3867 0.9512 1.0513 2.5857

计算误差err =

1.0e-012 *

0.7339 0 -0.0002 -0.5671

问题2 (1)

N = 5时,程序运行如下:

TestLag(inline('1./(1+x.^2)'), -1, 1, 5, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了5段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.5136 0.9978 0.9978 0.5136

插值点处函数值yFact =

0.5256 0.9975 0.9975 0.5256

计算误差err =

0.0121 -0.0002 -0.0002 0.0121

N = 10时,程序运行如下:

TestLag(inline('1./(1+x.^2)'), -1, 1, 10, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了10段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.5243 0.9975 0.9975 0.5243

插值点处函数值yFact =

0.5256 0.9975 0.9975 0.5256

计算误差err =

0.0014 0.0000 0.0000 0.0014

N = 20时,程序运行如下:

TestLag(inline('1./(1+x.^2)'), -1, 1, 20, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了20段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.5256 0.9975 0.9975 0.5256

插值点处函数值yFact =

0.5256 0.9975 0.9975 0.5256

计算误差err =

1.0e-005 *

-0.7023 0.0000 0.0000 -0.7023

实验2 (2)

N = 5时,程序运行如下:

TestLag(inline('exp(x)'), -5, 5, 5, [-4.75 -0.25 0.25 4.75]); 将区间[-5,5]分为了5段

计算插值的点xi =

-4.7500 -0.2500 0.2500 4.7500

计算出的插值yi =

-1.9321 1.4275 0.5882 123.7146

插值点处函数值yFact =

0.0087 0.7788 1.2840 115.5843

计算误差err =

1.9408 -0.6487 0.6958 -8.1303

N = 10时,程序运行如下:

TestLag(inline('exp(x)'), -5, 5, 10, [-4.75 -0.25 0.25 4.75]); 将区间[-5,5]分为了10段

计算插值的点xi =

-4.7500 -0.2500 0.2500 4.7500

计算出的插值yi =

0.0425 0.7796 1.2848 115.6630

插值点处函数值yFact =

0.0087 0.7788 1.2840 115.5843

计算误差err =

-0.0339 -0.0008 -0.0008 -0.0788

N = 20时,程序运行如下:

TestLag(inline('exp(x)'), -5, 5, 20, [-4.75 -0.25 0.25 4.75]); 将区间[-5,5]分为了20段

计算插值的点xi =

-4.7500 -0.2500 0.2500 4.7500

计算出的插值yi =

0.0087 0.7788 1.2840 115.5843

插值点处函数值yFact =

0.0087 0.7788 1.2840 115.5843

计算误差err =

1.0e-007 *

-0.0914 0.0000 0.0000 -0.1434

问题3 (1)

N =5时,程序运行如下:

TestLag2(inline('1./(1+x.^2)'), -1, 1, 5, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了5段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.5254 0.9978 0.9978 0.5254

插值点处函数值yFact =

0.5256 0.9975 0.9975 0.5256

计算误差err =

1.0e-003 *

0.2071 -0.3011 -0.3011 0.2071

N =10时,程序运行如下:

TestLag2(inline('1./(1+x.^2)'), -1, 1, 10, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了10段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.5255 0.9972 0.9972 0.5255

插值点处函数值yFact =

0.5256 0.9975 0.9975 0.5256

计算误差err =

1.0e-003 *

0.1562 0.2603 0.2603 0.1562

N =20时,程序运行如下:

TestLag2(inline('1./(1+x.^2)'), -1, 1, 20, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了20段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.5256 0.9975 0.9975 0.5256

插值点处函数值yFact =

0.5256 0.9975 0.9975 0.5256

计算误差err =

1.0e-007 *

0.2318 0.2381 0.2381 0.2318

问题3 (2)

N =5时,程序运行如下:

TestLag2(inline('exp(x)'), -1, 1, 5, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了5段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.3867 0.9514 1.0511 2.5857

插值点处函数值yFact =

0.3867 0.9512 1.0513 2.5857

计算误差err =

1.0e-003 *

0.0079 -0.1317 0.1339 -0.0108

N =10时,程序运行如下:

TestLag2(inline('exp(x)'), -1, 1, 10, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了10段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.3867 0.9512 1.0513 2.5857

插值点处函数值yFact =

0.3867 0.9512 1.0513 2.5857

计算误差err =

1.0e-009 *

-0.5045 -0.4791 -0.4835 -0.5994

N =20时,程序运行如下:

TestLag2(inline('exp(x)'), -1, 1, 20, [-0.95 -0.05 0.05 0.95]); 将区间[-1,1]分为了20段

计算插值的点xi =

-0.9500 -0.0500 0.0500 0.9500

计算出的插值yi =

0.3867 0.9512 1.0513 2.5857

插值点处函数值yFact =

0.3867 0.9512 1.0513 2.5857

计算误差err =

1.0e-015 *

0.1665 0.3331 -0.4441 -0.8882

问题4

(1)程序运行如下:

TestLag3([1 4 9], [5 50 115 185])

计算插值的点xi =

5 50 115 185

计算出的插值yi =

2.2667 -20.2333 -171.9000 -492.7333

插值点处函数值yFact =

2.2361 7.0711 10.7238 1

3.6015 计算误差err =

-0.0306 27.3044 182.6238 506.3348 (2)程序运行如下:

TestLag3([36 49 64], [5 50 115 185])

计算插值的点xi =

5 50 115 185

计算出的插值yi =

3.1158 7.0718 10.1670 10.0388 插值点处函数值yFact =

2.2361 7.0711 10.7238 1

3.6015 计算误差err =

-0.8797 -0.0007 0.5568 3.5626 (3)程序运行如下:

TestLag3([100 121 144], [5 50 115 185])

计算插值的点xi =

5 50 115 185

计算出的插值yi =

4.4391 7.2850 10.7228 13.5357 插值点处函数值yFact =

2.2361 7.0711 10.7238 1

3.6015 计算误差err =

-2.2030 -0.2139 0.0010 0.0658 (4)程序运行如下:

TestLag3([169 196 225], [5 50 115 185])

计算插值的点xi =

5 50 115 185

计算出的插值yi =

5.4972 7.8001 10.8005 13.6006 插值点处函数值yFact =

2.2361 7.0711 10.7238 1

3.6015 计算误差err =

-3.2611 -0.7291 -0.0767 0.0009

实验所用函数

function yh = LagInterp(x, y, xh)

% LagInterp 计算拉格朗日插值

%

% Synopsis: yh = LagInterp(x, y, xh)

%

% Input: x = 一维向量,将要做插值x的值

% y = 一维向量,将要做插值y的值

% xh = 数值或一维向量,计算插值的位置,支持计算一列xh的值%

% Output: yh = 数值或一维向量,通过计算插值的位置算出的插值if min(size(x)) > 1 | min(size(y)) > 1 %判断x,y是否为一维向量error('x,y must be vectors!');

elseif length(x) ~= length(y) %判断x,y是否有同样多的元素error('x and y must agree!');

end

yh = zeros(size(xh));

L = zeros(length(x) - 1);

for j = 1:length(xh)

for i = 1:length(x)

xCal = x;

xCal(i) = [];

%prod(xh(j) - xCal)/prod(x(i) - xCal)为拉格朗日基函数

L(i) = prod(xh(j) - xCal)/prod(x(i) - xCal);

yh(j) = yh(j) + L(i) * y(i); %yh = sum(L(i) * y(i))

end

end

function TestLag(fx, a, b, n, xi)

% TestLag 实验题目1 1,2

%

% Synopsis: TestLag(fun, a, b, n, xi)

%

% Input: fx = 用来验证插值计算准确率的函数

% a,b = 节点选取上下限

% n = 多项式次数,固定区间[-a,b]分段数% xi = 要计算插值的点

x = linspace(a, b, n);

y = feval(fx, x);

yi = LagInterp(x, y, xi);

yFact = feval(fx, xi);

err = yFact - yi;

fprintf('将区间[%d,%d]分为了%d段\n', a, b, n);

fprintf('计算插值的点xi =\n');

disp(xi);

fprintf('计算出的插值yi =\n');

disp(yi);

fprintf('插值点处函数值yFact =\n');

disp(yFact);

fprintf('计算误差err =\n');

disp(err);

function TestLag2(fx, a, b, n, xi)

% TestLag2 实验题目1 3

%

% Synopsis: TestLag2(fun, a, b, n, xi)

%

% Input: fx = 用来验证插值计算准确率的函数

% a,b = 节点选取上下限

% n = 多项式次数,固定区间[-a,b]分段数

% xi = 要计算插值的点

x = zeros(1,n);

for k = 1:n

x(k) = cos( (2*k-1)*pi/(2*n) ); %构造非等距节点end

y = feval(fx, x);

yi = LagInterp(x, y, xi);

yFact = feval(fx, xi);

err = yFact - yi;

fprintf('将区间[%d,%d]分为了%d段\n', a, b, n);

fprintf('计算插值的点xi =\n');

disp(xi);

fprintf('计算出的插值yi =\n');

disp(yi);

fprintf('插值点处函数值yFact =\n');

disp(yFact);

fprintf('计算误差err =\n');

disp(err);

function TestLag3(x, xi)

% TestLag3 实验题目1 4

%

% Synopsis: TestLag3(fun, a, b, n, xi)

%

% Input: x = 构造Lagrange插值的节点% xi = 要计算插值的点

fx = inline('sqrt(x)');

y = feval(fx, x);

yi = LagInterp(x, y, xi);

yFact = feval(fx, xi);

err = yFact - yi;

fprintf('计算插值的点xi =\n');

disp(xi);

fprintf('计算出的插值yi =\n');

disp(yi);

fprintf('插值点处函数值yFact =\n');

disp(yFact);

fprintf('计算误差err =\n');

disp(err);

思考题

1. 拉格朗日插值多项式的次数并不是越大越好,根据定义,插值式可以在节点处与实际函

数匹配,但不能保证在节点之间很好的逼近实际函数。这个现象就是多项式摆动——Runge 现象,有时多项式摆动可以通过谨慎选择基础函数的取样点来减小。通常采用分段插值可以很好的消除多项式摆动现象。

2. 在分段段数相同的情况下,插值区间越大,误差越大。原因是大部分情况下,相对于比

较大的区间,函数在比较小的区间上的函数值变化较缓和,因此即使出现摆动也不会偏离原函数太大。

3. 第一问中已经提到多项式摆动可以通过谨慎选择基础函数的取样点来减小。

我们来看下的分布和的图像:

可以看出,的分布是两端密集中间稀疏,的趋势是两边陡峭中间平缓,函数变化陡峭时节点增多正好可以增加插值的准确性。

4. 一般来说,内插时插值收敛于实际函数,一旦超出内插的范围,插值函数会发散,且离

插值区间越远外推误差越大。使用不用的插值方法在同一点外推的值也会相差很多,这说明外推本身就存在很大的不确定性。

计算方法实验

实验一: 姓名: 学号: 班级:2013级计算机6班实验地点:第二机房 实验时间:2015/3/17

1 实验目的和要求 1. 二分法求方程的根 2. 基本迭代法求方程的根 3. 用埃特金求方程010423=-+x x 在1.5处的一个根,精度要求410-。 4. 牛顿下山法求方程的根 求方程013=--x x 的根,初值取6.00=x ,精度满足510-。 5. 牛顿迭代法求解7,精度满足510- 2 实验环境和工具 机房 VC6 3 实验结果 3.1 算法流程图 3.2 程序核心代码 二分法代码 #include #include

void main() { double x,a=1.0,b=1.5; for(int i=1;i<10;i++) { x=(a+b)/2; if((a*a*a-a-1)*(x*x*x-x-1)<0) b=x; else a=x; if(b-a<0.01) break; cout< #include void main() { double x0=0.5,x,e=2.718281;

for(int i=1;i<20;i++) { x=pow(e,-x0); if(x-x0<0.00001) break; cout< #include #include using namespace std; ////////// double fun(double x); void AitkenIterative(double(*pf)(double x)); ////////// ////////// int main() { AitkenIterative(fun);

计算方法上机实验报告

《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x

的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把 ) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果: 实验二:

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 1)解线性方程组的Gauss 消去法和列主元Gauss 消去法(2人)/*张思珍,巩艳华*/ 用C 语言将不选主元和列主元Gauss 消去法编写成通用的子程序,然后用你编写的程序求解下列84阶的方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 1681684 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 2)解线性方程组的平方根法(4人)/*朱春成、黄锐奇、张重威、章杰*/ 用C 语言将平方根法和改进的平方根法编写成通用的子程序,然后用你编写的程序求解对称正定方程组b Ax =,其中 (1)b 随机的选取,系数矩阵为100阶矩阵 ?????? ???? ? ? ?101 1101 1101 1101 1101110 ; (2)系数矩阵为40阶的Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 1 1-+= j i a ij ,向量b 的第i 个分量为∑=-+ = n j i j i b 1 1 1. 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编

3.《数值分析简明教程》,王能超编 3)三对角线方程组的追赶法(3人)/*黄佳礼、唐伟、韦锡倍*/ 用C 语言将三对角线方程组的追赶法法编写成通用的子程序,然后用你编写的程序求解如下84阶三对角线方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 16816 84 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值分析简明教程》,王能超编 4)线性方程组的Jacobi 迭代法(3人)/*周桂宇、杨飞、李文军*/ 用C 语言将Jacobi 迭代法编写成独立的子程序,并用此求解下列方程组, 精确到小数点后5位 ???? ? ??=????? ??????? ? ?-149012 2111221 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 5)线性方程组的Gauss-Seidel 迭代法(3人)/*张玉超、范守平、周红春*/ 用C 语言将Gauss-Seidel 迭代法编写成独立的子程序,并用此求解下列方程组,精确到小数点后5位 ???? ? ??=????? ??????? ? ?--39721 1111112 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 6)解线性方程组的最速下降法法(2人)/*赵育辉、阿热孜古丽*/ 用C 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

计算方法第二章方程求根上机报告

实验报告名称 班级:学号:姓名:成绩: 1实验目的 1)通过对二分法与牛顿迭代法作编程练习与上级运算,进一步体会二分法与牛顿迭代法的不同特点。 2)编写割线迭代法的程序,求非线性迭代法的解,并与牛顿迭代法。 2 实验内容 用牛顿法和割线法求下列方程的根 x^2-e^x=0; x*e^x-1=0; lgx+x-2=0; 3实验步骤 1)根据二分法和牛顿迭代法,割线法的算法编写相应的求根函数; 2)将题中所给参数带入二分法函数,确定大致区间; 3)用牛顿迭代法和割线法分别对方程进行求解; 3 程序设计 牛顿迭代法x0=1.0; N=100; k=0; eps=5e-6; delta=1e-6; while(1) x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N disp('Newmethod failed')

break end if(abs(x1-x0)=delta) c=x1; x1=cutnext(x0,x1); x0=c; %x0 x1μYí?μ?μ?x1 x2 è?è?±£′??úx0 x1 end k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0)

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

数值分析上机实验报告

数值分析上机实验报告

《数值分析》上机实验报告 1.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号 在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

计算方法实验报告 插值

实验名称:插值计算 1引言 在生产和科研中出现的函数是多种多样的。常常会遇到这样的情况:在某个实际问题中,虽然可以断定所考虑的函数f(x)在区间[a,b]上存在且连续,但却难以找到它的解析表达式,只能通过实验和观测得到在有限个点上的函数值。用这张函数表来直接求出其他点的函数值是非常困难的,在有些情况下,虽然可以写出f(x)的解析表达式,但由于结构十分复杂,使用起来很不方便。面对这些情况,构造函数P(x)作为f(x)的近似,插值法是解决此类问题比较古老却目前常用的方法,不仅直接广泛地应用与生产实际和科学研究中,而且是进一步学习数值计算方法的基础。 设函数y=f(x)在区间[a,b]上连续,且在n+1个不同的点a≤x0,x1……,xn≤b上分别取值y0,y1……,yn. 插值的目的就是要在一个性质优良、便于计算的函数φ中,求一简单函数P(x),使P(xi)=yi(i=0,1…,n)而在其他点x≠xi上,作为f(x)的近似。 通常,称区间[a,b]为插值区间,称点x0,x1,…,xn为插值节点,上式为插值条件,称函数类φ为插值函数类,称P(x)为函数f(x)在节点x0,x1,…,xn处的插值函数,求插值函数P(x)的方法称为插值法。 2实验目的和要求 用matlab定义分段线性插值函数、分段二次插值函数、拉格朗日插值函数,输入所给函 数表,并利用计算机选择在插值计算中所需的节点,计算f(0.15),f(0.31),f(0.47)的近似值。

3算法描述 1.分段线性插值流程图

2.分段二次插值流程图

3.拉格朗日插值流程图

4程序代码及注释 1.分段线性插值

计算方法上机实习题大作业(实验报告).

计算方法实验报告 班级: 学号: 姓名: 成绩: 1 舍入误差及稳定性 一、实验目的 (1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性 二、实验内容 1、用两种不同的顺序计算10000 21n n -=∑,分析其误差的变化 2、已知连分数() 1 01223//(.../)n n a f b b a b a a b =+ +++,利用下面的算法计算f : 1 1 ,i n n i i i a d b d b d ++==+ (1,2,...,0 i n n =-- 0f d = 写一程序,读入011,,,...,,,...,,n n n b b b a a 计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分 1 041 n n x y dx x =+? (0,1,...,1 n = 4、设2 2 11N N j S j == -∑ ,已知其精确值为1311221N N ?? -- ?+?? (1)编制按从大到小的顺序计算N S 的程序 (2)编制按从小到大的顺序计算N S 的程序 (3)按两种顺序分别计算10001000030000,,,S S S 并指出有效位数 三、实验步骤、程序设计、实验结果及分析 1、用两种不同的顺序计算10000 2 1n n -=∑,分析其误差的变化 (1)实验步骤: 分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h 和math.h (2)程序设计: a.顺序计算

#include #include void main() { double sum=0; int n=1; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0)printf("sun[%d]=%-30f",n,sum); if(n>=10000)break; n++; } printf("sum[%d]=%f\n",n,sum); } b.逆序计算 #include #include void main() { double sum=0; int n=10000; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); } (3)实验结果及分析: 程序运行结果: a.顺序计算

数值计算方法实验5

实验报告 学院(系)名称: 主程序部分列选主元部分

实验结果: 一.列主元消去法 输入各个数据,最终使用列选主元法,得到结果为:x1=x2=x3=1二.高斯-赛德尔迭代法 输入各个数据,输出每一步迭代数据,最终结果为:x1=0.285716,附录(源程序及运行结果) 一.列主元高斯消去法 #include #include void print(double a[3][3],int n,double b[3]){ printf("输出矩阵:\n"); for(int i=0;ifabs(d)){ d=a[i][k]; l=i; } i++; } printf("选出主元:%lf\n",d); if(d==0) printf("矩阵奇异!\n"); else if(l!=k){ for(int j=k;j

太阳能电池——大学物理实验.

太阳能电池特性的测量 能源短缺和地球生态环境污染已经成为人类面临的最大问题,新能源利用迫在眉睫。太阳能是一种取之不尽、用之不竭的新能源。太阳电池可以将太阳能转换为电能,随着研究工作的深入与生产规模的扩大,太阳能发电的成本下降很快,而资源枯竭与环境保护导致传统电源成本上升。太阳能发电有望在不久的将来在价格上可以与传统电源竞争,太阳能应用具有光明的前景。 根据所用材料的不同,太阳能电池可分为硅太阳能电池,化合物太阳能电池,聚合物太阳能电池,有机太阳能电池等。其中硅太阳能电池是目前发展最成熟的,在应用中居主导地位。 本实验研究单晶硅,多晶硅,非晶硅3种太阳能电池的特性。 实验目的 1. 学习太阳能电池的发电的原理 2. 了解太阳电池测量原理 3. 对太阳电池特性进行测量 实验原理 太阳能电池利用半导体P-N 结受光照射时的 光伏效应发电,太阳能电池的基本结构就是一个大 面积平面P-N 结,图1为P-N 结示意图。 P 型半导体中有相当数量的空穴,几乎没有自由电子。N 型半导体中有相当数量的自由电子, 几乎没有空穴。当两种半导体结合在一起形成 P-N 结时,N 区的电子(带负电)向P 区扩散, P 区的空穴(带正电)向N 区扩散,在P-N 结附近形成空间电荷区与势垒电场。势垒电场会使载流子向扩散的反方向作漂移运动,最终扩散与漂移达到平衡,使流过P-N 结的净电流为零。在空间电荷区内,P 区的空穴被来自N 区的电子复合,N 区的电子被来自P 区的空穴复合,使该区内几乎没有能导电的载流子,又称为结区或耗尽区。 当光电池受光照射时,部分电子被激发而产生电子-空穴对,在结区激发的电子和空穴分别被势垒电场推向N 区和P 区,使N 区有过量的电子而带负电,P 区有过量的空穴而带正电,P-N 结两端形成电压,这就是光伏效应,若将P-N 结两端接入外电路,就可向负载输出电能。 在一定的光照条件下,改变太阳能电池负载电阻的大小,测量其输出电压与输出电流,得到输出伏安特性,如图2实线所示。 负载电阻为零时测得的最大电流I SC 称为短路电 流。 负载断开时测得的最大电压V OC 称为开路电压。 太阳能电池的输出功率为输出电压与输出电流的 乘积。同样的电池及光照条件,负载电阻大小不一样 时,输出的功率是不一样的。若以输出电压为横坐标, 输出功率为纵坐标,绘出的P-V 曲线如图2点划线所 示。 输出电压与输出电流的最大乘积值称为最大输出 空间电荷区 图1 半导体P-N 结示意图 I V

东南大学计算方法实验报告

计算方法与实习实验报告 学院:电气工程学院 指导老师:李翠平 班级:160093 姓名:黄芃菲 学号:16009330

实习题一 实验1 拉格朗日插值法 一、方法原理 n次拉格朗日插值多项式为:L n(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+y n l n(x) n=1时,称为线性插值,L1(x)=y0(x-x1)/(x0-x1)+ y1(x-x0)/(x1-x0)=y0+(y1-x0)(x-x0)/(x1-x0) n=2时,称为二次插值或抛物线插值,精度相对高些 L2(x)=y0(x-x1)(x-x2)/(x0-x1)/(x0-x2)+y1(x-x0)(x-x2)/(x1-x0)/(x1-x2)+y2(x-x0)(x-x1)/(x2-x0)/(x2-x1) 二、主要思路 使用线性方程组求系数构造插值公式相对复杂,可改用构造方法来插值。 对节点x i(i=0,1,…,n)中任一点x k(0<=k<=n)作一n 次多项式l k(x k),使它在该点上取值为1,而在其余点x i(i=0,1,…,k-1,k+1,…,n)上为0,则插值多项式为L n(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+y n l n(x) 上式表明:n 个点x i(i=0,1,…,k-1,k+1,…,n)都是l k(x)的零点。可求得l k 三.计算方法及过程:1.输入节点的个数n 2.输入各个节点的横纵坐标 3.输入插值点 4.调用函数,返回z 函数语句与形参说明 程序源代码如下: 形参与函数类型参数意义 int n 节点的个数 double x[n](double *x)存放n个节点的值 double y[n](double *y)存放n个节点相对应的函数值 double p 指定插值点的值 double fun() 函数返回一个双精度实型函数值,即插值点p 处的近似函数值 #include #include using namespace std; #define N 100 double fun(double *x,double *y, int n,double p); void main() {int i,n; cout<<"输入节点的个数n:"; cin>>n; double x[N], y[N],p; cout<<"please input xiangliang x= "<>x[i]; cout<<"please input xiangliang y= "<>y[i]; cout<<"please input LagelangrichazhiJieDian p= "<>p;

计算方法实验指导书.

计算方法 实 验 指 导 书 彭彬 计算机技术实验中心 2012年3月

· 实验环境: VC++ 6.0 · 实验要求:在机房做实验只是对准备好的实验方案进行验证,因此上机前要检查实验准备情况,通过 检查后方可上机。没有认真准备的学生不能上机,本次实验没有分数。实验中要注意考察和体会数值计算中出现的一些问题和现象:误差的估计,算法的稳定性、收敛性、收敛速度以及迭代初值对收敛的影响等。 · 关于计算精度:如果没有特别说明,在计算的过程中,小数点后保留5位数字,最后四舍五入到小数 点后四位数字。迭代运算的结束条件统一为 51 102 -?。在VC++ 6.0中,可使用setprecision 在流的输出中控制浮点数的显示(缺省显示6位)。演示如下: # include # include # include //输出6位精度,输出左对齐 cout<

计算方法实验报告册

实验一——插值方法 实验学时:4 实验类型:设计 实验要求:必修 一 实验目的 通过本次上机实习,能够进一步加深对各种插值算法的理解;学会使用用三种类型的插值函数的数学模型、基本算法,结合相应软件(如VC/VB/Delphi/Matlab/JAVA/Turbo C )编程实现数值方法的求解。并用该软件的绘图功能来显示插值函数,使其计算结果更加直观和形象化。 二 实验内容 通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组[]X n 中,通过插值方法计算得到的对应纵坐标存放 于动态数组[]Y n 中。 以Visual C++.Net 2005为例。 本实验将Lagrange 插值、Newton 插值和三次样条插值实现为一个C++类CInterpolation ,并在Button 单击事件中调用该类相应函数,得出插值结果并画出图像。CInterpolation 类为 class CInterpolation { public : CInterpolation();//构造函数 CInterpolation(float *x1, float *y1, int n1);//结点横坐标、纵坐标、下标上限 ~ CInterpolation();//析构函数 ………… ………… int n, N;//结点下标上限,采样点下标上限 float *x, *y, *X;//分别存放结点横坐标、结点纵坐标、采样点横坐标 float *p_H,*p_Alpha,*p_Beta,*p_a,*p_b,*p_c,*p_d,*p_m;//样条插值用到的公有指针,分别存放 i h ,i α,i β,i a ,i b ,i c ,i d 和i m }; 其中,有参数的构造函数为 CInterpolation(float *x1, float *y1, int n1) { //动态数组x1,y1中存放结点的横、纵坐标,n1是结点下标上限(即n1+1个结点) n=n1; N=x1[n]-x1[0]; X=new float [N+1]; x=new float [n+1]; y=new float [n+1];

(完整版)数值计算方法上机实习题答案

1. 设?+=1 05dx x x I n n , (1) 由递推公式n I I n n 1 51+-=-,从0I 的几个近似值出发,计算20I ; 解:易得:0I =ln6-ln5=0.1823, 程序为: I=0.182; for n=1:20 I=(-5)*I+1/n; end I 输出结果为:20I = -3.0666e+010 (2) 粗糙估计20I ,用n I I n n 51 5111+- =--,计算0I ; 因为 0095.05 6 0079.01020 201 020 ≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2 1 20=+= I 程序为:I=0.0087; for n=1:20 I=(-1/5)*I+1/(5*n); end I 0I = 0.0083 (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。 首先分析两种递推式的误差;设第一递推式中开始时的误差为000I I E '-=,递推过程的舍入误差不计。并记n n n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。因为=20E 20020)5(I E >>-,所此递推式不可靠。而在第二种递推式中n n E E E )5 1(5110-==-=Λ,误差在缩小, 所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制, 即算法是否数值稳定。 2. 求方程0210=-+x e x 的近似根,要求4 1105-+?<-k k x x ,并比较计算量。 (1) 在[0,1]上用二分法; 程序:a=0;b=1.0; while abs(b-a)>5*1e-4 c=(b+a)/2;

哈工大2011年大学物理试题

大学物理期末考题(A) 2003年1月10日 得分__________ 班级_________姓名_________学号___________ 序号____________ 注意:(1)共三张试卷。(2)填空题★空白处写上关键式子,可参考给分。计算题要排出必要的方程,解题的关键步骤,这都是得分和扣分的依据。(3)不要将订书钉拆掉。(4)第4、5页是草稿纸。 一、选择题 1、在宽度a =0.05mm 的狭缝后置一焦距f 为0.8m 的透镜, 有一屏幕处在透镜的焦平面上,如图所示。现将某单色光垂直照射在单缝上,在屏幕上形成单缝衍射条纹,试问:若在离中央明条纹上方x =1.6cm 的P 处恰为暗条纹,则该光的波长约为 (a) 450nm (b) 500nm (c) 550nm (d) 600nm _____________ 1、在宽度a =0.05mm 的狭缝后置一焦距f 为0.8m 的透镜,有一屏幕处在透镜的焦平面上,如图所示。现将某单色光垂直照射在单缝上,在屏幕上形成单缝衍射条纹,试问:若在离中央明条纹上方x =1.6cm 的P 处恰为暗条纹,则该光的波长约为 (a) 450nm (b) 500nm (c) 550nm (d) 600nm 选_____B ______ λ θθk a f x ==sin kf ax = ?λ 2、在牛顿环实验中,观察到的牛顿环的干涉圆环形条纹第9级明条纹所占的面积与第16级明条纹所占的面积之比约为 (a) 9/16 (b) 3/4 (c) 1/1 (d) 4/3 (e) 16/9 选_____________ 2、在牛顿环实验中,观察到的牛顿环的干涉圆环形条纹第9级明条纹所占的面积与第16级明条纹所占的面积之比约为 (a) 9/16 (b) 3/4 (c) 1/1 (d) 4/3 (e) 16/9 选_____C ______ 明:2 ) 12(λ -= k R r , 暗:λRk r = , λπR S S k k =-+1 3、用频率为ν的单色光照射某金属时,逸出光电子的动能为k E ,若改用频率 2ν的单色光照射该金属时,则逸出光电子的动能为 (a )k E 2 (b) k E h -ν (c) k E h +ν (d) k E h -ν2 选_____________

计算方法实验(c语言_六项试验)

计算方法实验报告 实验一 舍入误差与数值稳定性 目的与要求: 1、 通过上机编程,复习巩固以前所学程序设计语言; 2、 通过上机计算,了解舍入误差所引起的数值不稳定性。 3、 通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。 实验内容: ● 通过正反两个实例的计算,了解利用计算机进行数值计算中舍入误差 所引起的数值不稳定性,深入理解初始小的舍入误差可能造成误差积累从而对计算结果的巨大影响。 ● 通过实际编程,了解运算次序对计算结果的影响,了解实数运算符合 的结合律和分配律在计算机里不一定成立。 ● 1 对 n = 0,1,2,…,20 计算定积分 y n = dx 5x 1 n x ?+ 算法 1 利用递推公式 y n = n 1 - 5y 1n - n = 1,2,…,20 取 =+=? dx 5 x 1 1 y ln6- ln5 ≈ 0.182 322 算法 2 利用递推公式 5 15n 1y 1n -= -y n n = 20,19,…,1 注意到 1051dx 51dx 5x dx 6112611 20 1 020 1 020x x x =≤+≤=??? 取

730 008.0)126 11051(201y 20 ≈+≈ 算法一: #include #include #include #include"stdlib.h" void main(void) { float y_0=log(6.0)-log(5.0),y_1; int n=1; system("cls");/*清屏*/ printf("y[0]=%-20f",y_0); while(1) { y_1=1.0/n-5*y_0; printf("y[%d]=%-20f",n,y_1);/*输出*/ if(n>=20)break; y_0=y_1; n++; if(n%3==0)printf("\n"); } getch();/*保持用户屏幕*/ } 算法二: #include #include #include #include"stdlib.h"

计算方法上机实验报告——拉格朗日插值问题

计算方法上机实验报告——拉格朗日插值问题 一、方法原理 n次拉格朗日插值多项式为:Ln(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+ynln(x) n=1时,称为线性插值,L1(x)=y0(x-x1)/(x0-x1)+y1(x-x0)/(x1-x0)=y0+(y1-x0)(x-x0)/(x1-x0) n=2时,称为二次插值或抛物线插值,精度相对高些 L2(x)=y0(x-x1)(x-x2)/(x0-x1)/(x0-x2)+y1(x-x0)(x-x2)/(x1-x0)/(x1-x 2)+y2(x-x0)(x-x1)/(x2-x0)/(x2-x1) 二、主要思路 使用线性方程组求系数构造插值公式相对复杂,可改用构造方法来插值。 对节点xi(i=0,1,…,n)中任一点xk(0<=k<=n)作一n次多项式lk(xk),使它在该点上取值为1,而在其余点xi(i=0,1,…,k-1,k+1,…,n)上为0,则插值多项式为Ln(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+ynln(x) 上式表明:n个点xi(i=0,1,…,k-1,k+1,…,n)都是lk(x)的零点。可求得lk 三.计算方法及过程:1.输入节点的个数n 2.输入各个节点的横纵坐标 3.输入插值点 4.调用函数,返回z 函数语句与形参说明 程序源代码如下: 形参与函数类型 参数意义 intn 节点的个数 doublex[n](double*x) 存放n个节点的值 doubley[n](double*y) 存放n个节点相对应的函数值 doublep 指定插值点的值 doublefun() 函数返回一个双精度实型函数值,即插值点p处的近似函数值 #include #include usingnamespacestd; #defineN100 doublefun(double*x,double*y,intn,doublep); voidmain() {inti,n; cout<<"输入节点的个数n:"; cin>>n;

相关主题
文本预览
相关文档 最新文档