北京科技大学应用计算方法作业与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、第一次作业
(一)2-6计算下列向量的1-范数、∞-范数、2-范数。
(1)x=(12,-4,-6,2)T
>> A=[12,-4,-6,2] A =
12 -4 -6 2 >> norm(A,1) ans = ^
24
>> norm(A,inf) ans = 12
>> norm(A,2) ans =
(2) x=(1,3,-4)T
、
>> A=[1,3,-4] A =
1 3 -4 >> norm(A,1) ans = 8
>> norm(A,inf) ans = …
4
>> norm(A,2) ans =
(二)2-9 计算下列矩阵的行范数、列范数、谱范数、F 范数。
(1)⎪⎪⎪
⎭
⎫ ⎝⎛--=11211
1113A >> A=[3,-1,1;1,1,1;2,1,-1]
A = ~
3 -1 1 1 1 1
2 1 -1 >> norm(A,1) ans = 6
>> norm(A,inf) ans = …
5
>> norm(A,2) ans =
>> norm(A,'fro') ans = (2)R a a a A ∈⎪
⎪⎭
⎫
⎝⎛-=,00 .
>> A=[0,1;-1,0] A =
0 1 -1 0 >> norm(A,1) ans = 1
>> norm(A,inf) [
ans = 1
>> norm(A,2) ans = 1
>> norm(A,'fro') ans =
>
二、第二次作业
用牛顿迭代法求方程0133=--x x 在20=x 附近的根。要求:给成程序和运行结
果.
1、牛顿法的基本原理
在求解非线性方程0)(=x f 时,它的困难在于)(x f 是非线性函数,为克服这一困难,考虑它的线性展开。设当前点为k x ,在k x 处的Taylor 展开式为
))(()()('
k k k x x x f x f x f -+≈ )1.2(
令0)(=x f ,解其方程得到
),1,0(,)
()
('1 =-
=+k x f x f x x k k k k )2.2(
)2.2(式为牛顿迭代公式,用牛顿迭代公式求方程0)(=x f 根的方法称为牛顿迭代法。此即
牛顿迭代法的设计原理。
2、matlab 程序代码
function root=NewtonRoot(f,a,b,eps) if (nargin==3) eps=; end
f1=subs(sym(f),findsym(sym(f)),a); f2=subs(sym(f),findsym(sym(f)),b); if (f1==0) root=a; end
if (f2==0) roor=b; end
if (f1*f2>0)
disp('两端点函数值乘积大于0!') return ; else
tol=1;
fun=diff(sym(f));
fa=subs(sym(f),findsym(sym(f)),a); fb=subs(sym(f),findsym(sym(f)),b);
dfa=subs(sym(fun),findsym(sym(fun)),a); dfb=subs(sym(fun),findsym(sym(fun)),b); if (dfa>dfb)
root=a-fa/dfa; else
root=b-fb/dfb; end
while (tol>eps) r1=root;
fx=subs(sym(f),findsym(sym(f)),r1);
dfx=subs(sym(fun),findsym(sym(fun)),r1); root=r1-fx/dfx; tol=abs(root-r1); end end
3、运行结果截图
结论:通过计算可以看出0133
=--x x 在20=x 附近的根为.
三、第三次作业
编写高斯顺序消元法求解下面方程组的程序并计算结果。
⎪⎩
⎪
⎨⎧=+--=-+-=--2
.3525.82102.610321321321x x x x x x x x x )1.3( 1、高斯顺序消元法的设计原理
高斯顺序消元法的基本思想是将线性方程组
⎪⎪
⎩⎪⎪⎨
⎧=+++=+++=+++n
n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a 22112
22221211
1212111 )2.3( 通过消元,逐步转化为等价的上(或下)三角形方程组,然后用回代法求解。
2、matlab 程序代码
function [x,XA]=GaussXQByOrder(A,b)
%高斯顺序消元法 N = size(A); n = N(1); for i=1:(n-1) for j=(i+1):n if (A(i,i)==0)
disp('对角元素为0!'); %防止对角元素为0 return ;
end
l = A(j,i); m = A(i,i);
A(j,1:n)=A(j,1:n)-l*A(i,1:n)/m; %消元方程 b(j)=b(j)-l*b(i)/m; end end
x=SolveUpTriangle(A,b); %通用的求上三角系数矩阵线性方程组的函数 XA = A; %消元后的系数矩阵 function x=SolveUpTriangle(A,b) N=size(A); n=N(1);
for i=n:-1:1 if (i s=A(i,(i+1):n)*x((i+1):n,1); else s=0; end x(i,1)=(b(i)-s)/A(i,i); end 3、运行结果截图 结论:高斯顺序消元法求解出)1.3(的结果为2200.1,1800.1,8600.0321===x x x 。 四、第四次作业 编写Jacobi 迭代法和Seidel 迭代法求解方程组的程序,并计算出结果。 ⎪⎩ ⎪ ⎨⎧=+--=-+-=--2 .3525.82102.610321321321x x x x x x x x x )1.4( 精度要求:3) ()1(10-∞ +<-k k x x (一)用Jacobi 求解题设方程组 1、Jacobi 迭代原理 设有一个n 元线性方程组