《应用计算方法教程》大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《应用计算方法教程》作业

姓名:* *

学号:S2017****

专业:* * * *

学院:机械工程学院

联系方式:***********

任课教师:丁军

作业一.用任意方法求解七阶方程-5+22x-12x2+x3+13x4+10x5-7x6-4x7

牛顿迭代法:

y=@(x)4*x^7+7*x^6-10*x^5-13*x^4-x^3+12*x^2-22*x+5;

s=@(m)28*m^6+42*m^5-50*m^4-52*m^3-3*m^2+24*m-22;

p0=0;N=1000;Tol=0.001;

for k=1:N

p1=p0-y(p0)/s(p0);

if abs(p1-p0)>Tol

p0=p1;

else break

end

end

disp(p1);disp(k)

作业二.实验4-2

合理利用LU分解法(使用列选主元可恰当加分)或追赶法求解下列方程组:

程序:

A=[1.3,-1,-1,2.4,-3.4;2.4,-1,-1,1.4,3.7;2,1,-2,3.6,6.8;2.5,-1,4,3,6.6;1.5,-1,-1,5.3,2.8];

b=[4.2;6.3;5.5;3.6;6.2];

L=eye(5);U(1,:)=A(1,:);

y=[0;0;0];x=[0;0;0];

for k=2:5

if U(k-1,k-1)==0

{

disp('分解失败');

Return

}

end

L(k:5,k-1)=A(k:5,k-1)/U(k-1,k-1)

U(k,k:5)=A(k,k:5)-L(k,1:k-1)*U(1:k-1,k:5)

if k<5

A(k+1:5,k)=A(k+1:5,k)-L(k+1:5,1:k-1)*U(1:k-1,k);

end

end

L1=inv(L);y=L1*b;

U1=inv(U);x=U1*y;

disp(L);disp(U);disp(x);

结果:

作业三.实验4-3

4-3.实验目的:考察Holert矩阵的性态,了解病态方程组求解。

实验内容:生成hilbert矩阵:。计算的条件数,

观察其变化。分别应用LU分解法与LU分解迭代求精法求解方程组。将两种方法所得结果进行比较。

1)计算的条件数

算法实现:

%n=5:10

clear;clc;

format rat

for n=5:10

for i=1:n

for j=1:n

H(i,j)=1/(i+j-1);

end

end

disp(H)

cond(H,1)

end

运算结果:

11/21/31/41/5

1/21/31/41/51/6

1/31/41/51/61/7

1/41/51/61/71/8

1/51/61/71/81/9

Cond1=943656

Cond1=29070279

Cond1=985194888

Cond1=33872789100

Cond1=1099649467886

Cond1=35353368771751

1 1/

2 1/

3 1/

4 1/

5 1/

6 1/

7 1/

8 1/

9 1/10

1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11

1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11 1/12

1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11 1/12 1/13

1/5 1/6 1/7 1/8 1/9 1/10 1/11 1/12 1/13 1/14

1/6 1/7 1/8 1/9 1/10 1/11 1/12 1/13 1/14 1/15

1/7 1/8 1/9 1/10 1/11 1/12 1/13 1/14 1/15 1/16

1/8 1/9 1/10 1/11 1/12 1/13 1/14 1/15 1/16 1/17

1/9 1/10 1/11 1/12 1/13 1/14 1/15 1/16 1/17 1/18

1/10 1/11 1/12 1/13 1/14 1/15 1/16 1/17 1/18 1/19 观察结论:矩阵的条件数越来越大,而且远远大于1,这是一个病态问题

1)LU分解法

算法实现:

% n=5:10

clear;clc;

n=10

for i=1:n

for j=1:n

H(i,j)=1/(i+j-1);

end

end

disp(H)

cond(H,1)

format short;

n=size(H);

L=eye(n);

U(1,:) = H(1,:);

for k = 2:n

if U(k-1,k-1)==0

disp('分解失败');return

end

L(k:n,k-1)=H(k:n,k-1)/U(k-1,k-1);

U(k,k:n)=H(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);

if k

H(k+1:n,k)=H(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k);

end

end

B([1:10],1)=1;

Y=L\B;

L

U

X=U\Y

运行结果:

L=

1.0000 0 0 0 0 0 0 0 0 0 0.5000 1.0000 0 0 0 0 0 0 0 0 0.3333 1.0000 1.0000 0 0 0 0 0 0 0 0.2500 0.9000 1.5000 1.0000 0 0 0 0 0 0 0.2000 0.8000 1.7143

2.0000 1.0000 0 0 0 0 0 0.1667 0.7143 1.7857 2.7778 2.5000 1.0000 0 0 0 0 0.1429 0.6429 1.7857

3.3333

4.0909 3.0000 1.0000 0 0 0 0.1250 0.5833 1.7500 3.7121

5.5682 5.6538 3.5000 1.0000 0 0

相关文档
最新文档