09级矩阵与数值分析上机作业

发布 2022-09-02 13:31:28 阅读 8181

《矩阵与数值分析》课程数值实验报告。

矩阵05班 20906284 马强土木水利学院道路与铁道工程专业任课教师:董波。

一、解线性方程组。

1.问题。1)分别jacobi迭代法和gauss-seidel迭代法求解教材85页例题。迭代法计算停止的条件为:;

2). 用gauss列主元消去法、qr方法求解如下方程组:

2.程序及计算结果。

a. 源**:

clear all

a=[3.4336 -0.52380 0.67105 -0.15270;

a-方程组系数矩阵

b=[-1.0;1.5;2.5;-2.0];

b-方程组的矩阵表达形式ax=b的右端列向量表。

c=0.000001; %终止条件。

n=length(b);

x0j=zeros(n,1);%jacobi迭代法初始值。

x0g=zeros(n,1);%gauss-seidel迭代法初始值。

kj=0;kg=0;%迭代次数计数。

d=zeros(n,n);l=zeros(n,n);u=zeros(n,n);

将a分解为d-l-u的形式。

for i=1:n

d(i,i)=a(i,i);

endfor i=2:n

for j=1:i-1;

l(i,j)=-a(i,j);

endend

for i=1:n-1

for j=i+1:n;

u(i,j)=-a(i,j);

endend

jacobi迭代法矩阵形式。

bj=inv(d)*(l+u);

fj=inv(d)*b;

gauss-seidel迭代法矩阵形式。

bg=inv(d-l)*u;

fg=inv(d-l)*b;

jacobi迭代。

for i=1:100

xj=bj*x0j+fj;

kj=kj+1;

if max(xj-x0j)<=cxjkj

break;

endx0j=xj;

endgauss-seidel迭代。

for i=1:100

xg=bg*x0g+fg;

kg=kg+1;

if max(xg-x0g)<=cxgkg

break;

endx0g=xg;

endb.计算结果:

xj =迭代步数k j= 11

xg= 迭代步数k g=6

分析:g—s法应用了上一步计算出来的较精确的值,所以可以用较少的迭代步数满足误差要求。

a.源**:

a=[2 4 3 1;8 2 0 0;5 0 4 0;9 0 0 5];

b=[12 6 23 16];

n,n]=size(a);

x=zeros(n,1);

y=zeros(n,1);

z=zeros(n,1);

r=1:n;

for p=1:n-1

[max1,j]=max(abs(a(p:n,p)))

c=a(p,:)

a(p,:)a(j+p-1,:)

a(j+p-1,:)c;

d=b(p);

b(p)=b(j+p-1);

b(j+p-1)=d;

if a(p,p)==0

break;

end; for k=p+1:n

mult=a(k,p)/a(p,p);

b(k)=b(k)-mult*b(p);

a(k,p:n)=a(k,p:n)-mult*a(p,p:n);

end;end;

for k=n:-1:1

x(k)=(b(k)-a(k,k+1:n)*x(k+1:n))/a(k,k)

endb.计算结果:

x=二、非线性方程的迭代解法。

1、问题:1).用newton迭代法、割线法求方程。

在附近的正.计算停止的条件为:;

2).利用迭代法求多项式。

的所有零点。

2、 程序及计算结果:

a.源**:

newton迭代法。

clear all

x0=0.5;

k=0;c=0.000001;

for i=1:10000

f=x0*exp(x0)-1;

df=(x0+1)*exp(x0);

x=x0-f/df;

k=k+1;

if abs(x-x0)<=c

break;

endx0=x;endx

k割线法。

clear all

x0=0.5;

k=0;c=0.000001;

for i=1:10000

f=x0*exp(x0)-1;

df=(x0+1)*exp(x0);

x=x0-f/df;

k=k+1;

if abs(x-x0)<=c

break;

endx0=x;endx

k割线法。

clear all

x0=0.5;

x1=0.7;

k=0;c=0.000001;

for i=1:10000

x=x1-(x1*exp(x1)-1)*(x1-x0)/(x1*exp(x1)-1)-(x0*exp(x0)-1));

k=k+1;

if abs(x-x1)<=c

break;

endx0=x1;

x1=x;endxk

b.计算结果:

newton迭代法。x=k=4

割线法。x=

k=5分析:割线法的收敛阶小于newton迭代法,所以用了较多的迭代步数以满足误差要求。

a.源**:

clear all

x=-5:0.5:11

for i=1:33

f(i)=x(i)^5-13.7*x(i)^4+14.66*x(i)^3+213.092*x(i)^2-154.2072*x(i)-631.9296

endplot(x,f)

grid on

function x1=newton(b)

x=b;c=0.000001;

for i=1:10000

f=x^5-13.7*x^4+14.66*x^3+213.092*x^2-154.2072*x-631.9296;

df=5*x^4-54.8*x^3+43.98*x^2+426.184*x-15402072;

x1=x-f/df;

if abs(x1-x)<=c

break;

endx=x1;endx1

b.计算结果:

由上图选取初始值:-3.5、 -2、 2 、 5、 10.6

由newton迭代法得到方程的五个解:x=

三、数值积分。

1、问题:用romberg方法求的近似值,要求误差不超过。

2、程序及计算结果:

a.源**:

clear all

a=0;b=1;

h=(b-a);

t(1,1)=(h/2)*1/sqrt(pi)*(exp(-(a^2)/2)+exp(-(b^2)/2));

k=2;while (k>=2)

sum=0;

for p=1:2^(k-2)

sum=sum+1/sqrt(pi)*exp(-(a+(2*p-1)*h/2^(k-1))^2/2);

endt(1,k)=0.5*t(1,k-1)+sum*h/2^(k-1);

for m=2:k

t(m,k-m+1)=(4^(m-1)*t(m-1,k-m+2)-t(m-1,k-m+1))/4^(m-1)-1);

if (abs(t(m,1)-t(m-1,1))<1.0e-5)

k=0;end

endif k~=0

k=k+1;

endend

t(m,1)

m-1abs(t(m,1)-t(m-1,1))

b.计算结果:

i= ,加速次数m=3,绝对误差c=

分析:应用加速法可以使之前不收敛的式子收敛,有效的加快了收敛速度。

四、插值与逼近。

1、问题:(1).给定上的函数,请做如下的插值逼近:

构造等距节点分别取,,的lagrange插值多项式;

构造分段线性取的lagrange插值多项式;

取chebyshev多项式的零点:

作插值节点构造的插值多项式。

和上述的插值多项式均要求画出曲线图形(用不同的线型或颜色表示不同的曲线)。

2).已知函数值。

和边界条件:. 求三次样条插值函数并画出其图形.

3).分别用和拟合下列数据,并比较两种方法得到的误差。

2、程序及计算结果:

a.源**:

clear all

a=-1;b=1;

n1=5;n2=8;

n3=10;

x00=a:(b-a)/(n1-1):b;

x01=a:(b-a)/(n2-1):b;

x02=a:(b-a)/(n3-1):b;

x=a:(b-a)/99:b;

for i=1:100

f(i)=1/(1+25*x(i)*x(i));

endfor i=1:n1

y00(i)=1/(1+25*(x00(i))^2);

endfor i=1:n2

y01(i)=1/(1+25*(x01(i))^2);

endfor i=1:n3

y02(i)=1/(1+25*(x02(i))^2);

数值分析上机作业

一。上机作业任务一 用五点差分格式求解poisson方程边值问题,p 任选一题 二。上机作业任务二 用simpson求积法计算定积分。下面两种方法任选一。1 变步长复化simpson求积法2 自适应simpson求积法。三。上机作业任务三 用matlab语言编写连续函数最佳平方逼近的算法程序 函数式...

数值分析上机作业

今天的上机作业。1.lagrange 插值。给出的数值表。用lagrange 插值计算的近似值。2 newton插值。用newton插值计算x 0.41的近似值。3.插值法的全部内容。把chap 2试验。doc的全部内容作一边,粘在这个文件里 包括图形 答 插值。function f lagrang...

数值分析上机作业

第二次上机作业。一。任务 用matlab语言编写连续函数最佳平方逼近的算法程序 函数式m文件 并用此程序进行数值试验,写出计算实习报告。二。程序功能要求 在后面的附一的基础上进行修改,使其更加完善。要求算法程序可以适应不同的具体函数,具有一定的通用性。所编程序具有以下功能 1.用lengendre多...