数值代数与计算方法上机作业

更新时间:2023-06-08 02:22:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数值代数与计算方法

作业一:Matlab的基本操作

P31

1.根据习题12和习题13构造算法和MATLAB程序,以便精确计算所有情况下的二次方程的根,包括b b2 4ac的情况。

2.参照例1.25,对下列3个差分方程计算出前10个数值近似值。在每种情况下引入一个笑

1 得出是误差。如果没有初始误差,则没个差分方程将生成序列 n 。构造类似表1.4、2 n 1

表1.5以及图1.8至图1.10的输出。

1rn 1,其中n=1,2,… 2

3(b) p0 1,p1 0.497,pn pn 2, 其中n=2,3,… 2

5(c) q0 1,q1 0.497,qn qn 1 qn 2, 其中n=2,3,… 2(a) r0 0.994;rn

作业二:非线性方程f(x) 0的解法

P40

1. 使用程序2.1求解下面每个函数的不动点(尽可能多)近似值,答案精确到小数点后12为。同时,构造每个函数和直线y=x来显示所有不动点。

(a)

(b)

(c)

(d) g(x) x5 3x3 2x2 2 g(x) cos(sin(x)) g(x) x2 in(x 0.15) g(x) xx cos(x)

P49

3. 修改程序2.2和程序2.3,使得输出分别类似于表2.1和表2.2的矩阵(即矩阵的第一行应当为[0 a0 c0 b0 f(c0) ] )。

P69

4, 用习题11中的立方根算法修改程序2.5,并用其近似下列每个立方根到小数点后10位。 (a) p0 2,求7的近似值。

(b) p0 6,求200的近似值。

(c) p0 2,求( 7)的近似值。

作业三:线性方程组AX B的求解方法 131313

数值代数与计算方法

P93

1.

P97

2.

P109

2.

P120

1.

P130

4.

作业四:插值与多项式逼近

P154

Matlab的矩阵特性使其能够快速计算一个函数在其多个点处的值。例如,如果X=[-1 0 1],则sin(X)将得到[sin(-1),sin(0),sin(1)]。类似地,如果X=-1:0.1:1,则Y=sin(X)将得到与X同样维数的矩阵Y,其值为正弦函数的值。通过定义矩阵D=[X’,Y’],可将这两个行矩阵输出为表的形式。注意:矩阵X和Y必须有相同的长度。

1. (a) 用plot命令,在同一幅图正绘制区间-1 x 1上的sin(x),习题1中计算出的P5(x),P7(x)和P9(x)。

(b)创建一个表,他的各列分别由区间[-1,1]上的10个等距点x处的sin(x),P5(x),P7(x)和P9(x)值构成。

P160

1. 用Matlab实现算法4.1,多项式P(x) aNxN aN 1xN 1 a2x2 a1x a0的系数以1 N矩阵P [aN,aN 1, ,a2,a1,a0]的形式输出。

P171

2. 下表给出了11月8日美国洛杉矶的一个郊区在5小时内的测量温度。

(a)利用程序4.1,对表中的数据构造一个拉个人朗日插值多项式。

(b)利用算法4.1(iii),估计在这5小时内的平均温度。

(c)在同一坐标系中画出表中的数据和由(a)得到的多项式。讨论用(a)中的多项式计算平均温度可能产生的误差。

时间(下午) 华氏度

数值代数与计算方法

1 66

2 66

3 66

4 64

5 63

6 63

P178

1,用程序4.2重新计算4.3.5节中的第2题

P202

1.胡克(Hooke)定律指出F kx,其中F是拉伸弹簧的拉力(单位为盎司),x是拉伸的长度(单位为英寸)。根据下列试验数据,实用程序5.1求解拉伸长量k的近似值。

(a)(b)见书上

作业五:数值微分

P260

1, 用程序6.1求解下列函数在x处的导数近似值,精度为小数点后13位。注:有必要改写程序中的max1的值和h的初始值。

(a) f(x) 60x45 32x33 233x5 47x2 77; x 1/

(b) f(x) sin(x)1 5));x 231 x

(c) f(x) )); 1

xx 1

2

(d) f(x) sin(x 7x 6x 8);

(d) f(x) x;

P270 xx32x 1 2x 0.0001

1. 修改程序6.3,使`得可用它计算P (xM),M 1,2, ,N 1

作业六:数值积分

P290

1, (a) 对习题1中的每个积分,计算M和步长h,使得用组合梯形公式计算得到精确到小数

数值代数与计算方法

点后9位的结果。用程序7.1计算每个积分。

(b)对习题1中的每个积分,计算M和步长h,使得用组合辛普森公式计算得到精确到小数点后9位的结果。用程序7.2计算每个积分。

P301

1, 利用程序7.4求习题1中的积分,精确到小数点后11位。

P307

1, 用程序7.6求以下定积分的近似值,其实容错 0 0.00001。

(a)

(b) 30sin(2x)dx 51 x

301sin(4x)e 2xdx 1

xdx (c)0.04

高斯赛德尔迭代算法代码:function X = gseid(A, B, P , delta, max1) N = length(B); for k=1:max1 for j =1:N if j==1 X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1); elseif j==N X(N)=(B(N)-A(N, 1:N-1)*(X(1:N-1))')/A(N, N); else X(j)=(B(j)-A(j, 1:j-1)*X(1:j-1)'-A(j, j+1:N)*P(j+1:N))/A(j,j); end end

err=abs(norm(X'-P));relerr=err/(norm(X)+eps);P=X'; if(err<delta)||(relerr<delta) break endendX=X';辅助建立矩阵的代码:function P=matrix(n) P=zeros(n,n); P(1,1:3)=[12 -2 1]; P(2,1:4)=[-2 12 -2 1]; for k=3:n-2 P(k,k-2:k+2)=[1 -2 12 -2 1]; end P(n-1,n-3:n)=[1 -2 12 -2]; P(n,n-2:n)=[1 -2 12];function B=matrix2(n) B = zeros(n,1) ; for k=1:50 B(k, 1) = 5 ; end 在matlab中调用编写好的三个函数如下: >> B = matrix2(50)>> A = matrix(50)>> X = gseid(A, B, B, 0.0001, 50)X = 0.4638 0.5373 0.5090 0.4982 0.4989 0.5000 0.5001 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5001 0.5000 0.4989 0.4982 0.5090 0.53730.4638

114569384

本文来源:https://www.bwwdw.com/article/nzd1.html

Top