资源描述
数值分析上机实验
学生姓名: 学号: 教师:
实验1:
1. 实验项目的性质和任务
通过上机实验,使学生对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。
2.教学内容和要求
1)对高阶多多项式
编程求下面方程的解
并绘图演示方程的解与扰动量的关系。
Matlab程序:
x=1:20;
y=zeros(1,20);
ve=zeros(1,21);
plot(x,y,'o')
hold on;
pause;
for x=1:5
ve(2)=10^(-x);
e=roots(poly(1:20)+ve);
plot(e,'*')
hold on
pause;
end
2)对,生成对应的Hilbert矩阵,计算矩阵的条件数;通过先确定解获得常向量b的方法,确定方程组
最后,用矩阵分解方法求解方程组,并分析计算结果。
Matlab程序:
for n=2:20;
H=hilb(n);
ca=cond(H,2)
x=(1:n)';
b=H*x;
[L,U]=lu(H);
y=L\b;
x1=U\y
plot(x,x,'o',x1,x1,'*')
hold on
pause;
end
3)对函数
的Chebyshev点
编程进行Lagrange插值,并分析插值结果。
Matlab程序:
function y=lagrangen(x0,y0,x)
n=length(x0);m=length(x);
for i=1:m
z=x(i);s=0;
for k=1:n
L=1;
for j=1:n
if j~=k
L=L*(z-x0(j))/(x0(k)-x0(j));
end
end
s=s+L*y0(k);
end
y(i)=s;
end
y;
for n=5:20
x=-1:0.01:1; y=1./(1+25*x.^2);
plot(x,y,'r')
hold on
k=n+1:-1:1;
x0=cos((2*k-1)*pi./(2*(n+1))), y0=1./(1+25*x0.^2);
x=-1:0.01:1; y1=lagrangen(x0,y0,x);
plot(x0,y0,'o',x,y1), pause
hold off
end
展开阅读全文