作业一: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,… 23(b) p0?1,p1?0.497,pn?pn?2, 其中n=2,3,…
25(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的求解方法
131313P93 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/3
(b) f(x)?tan(cos(5?sin(x)1?5));x? 231?x(c) f(x)?sin(cos());
1xx?12
(d) f(x)?sin(x?7x?6x?8); (d) f(x)?x;
P270
xx32x?1?5 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
1xdx
(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
114569384