
求一篇数值分析实验报告
求解初值问题的Taylor方法的实验报告.要有可以运行的程序啊.谢谢各位大虾们!!!追加100分!!其他题目也可以,但必须有相对应的程序啊,最好是matlab的。...
求解初值问题的Taylor方法 的实验报告.
要有可以运行的程序啊.谢谢各位大虾们!!!
追加100分!!
其他题目也可以,但必须有相对应的程序啊,最好是matlab的。 展开
要有可以运行的程序啊.谢谢各位大虾们!!!
追加100分!!
其他题目也可以,但必须有相对应的程序啊,最好是matlab的。 展开
2个回答
展开全部
数值分析实验报告
姓名: 学号:
实验1:
1. 实验项目的性质和任务
通过上机实验,对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。
2.教学内容和要求
1)对高阶多多项式
编程求下面方程的解
并绘图演示方程的解与扰动量 的关系。(实验2.6)
2)对 ,生成对应的Hilbert矩阵,计算矩阵的条件数;通过先确定解获得常向量b的方法,确定方程组
最后,用矩阵分解方法求解方程组,并分析计算结果。(第三章,实验题4)
3)对函数
的Chebyshev点
编程进行Lagrange插值,并分析插值结果。(第四章 实验1)
项目涉及核心知识点
病态方程求解、矩阵分解和方程组求解、Lagrange插值。
重点与难点
算法设计和matlab编程。
1)a.实验方案:
先创建一个20*50的零矩阵X,然后利用Matlab中的roots()和poly()函数将50个不同的ess扰动值所产生的50个解向量分别存入X矩阵中。然后再将ess向量分别和X的20个行向量绘图。即可直观的看出充分小的扰动值会产生非常大的偏差。即证明了这个问题的病态性。
b.编写程序:
>> X=zeros(20,50);
>> ve=zeros(1,21);
>> ess=linspace(0,0.00001,50);k=1;
>> while k<=50
ve(2)=ess(k);
X(1:20,k)=roots(poly(1:20)+ve);
k=k+1;
end
>> m=1;
>> while m<=20
figure(m),plot(ess,X(m,:));
m=m+1;
end
C.实验结果分析和拓展
由上面的实验结果可以看出一个充分小的扰动值可以让方程的解产生非常大的偏差,而且这个偏差随着ess的变大偏差也随即变大。但可以看出在相对小的根处根比较稳定,也就是说这些根关于ess并不敏感,而在较大根处时,根很不稳定,即这些解关于ess的变化是敏感的。这就说明了这个问题本身就是一个病态问题,与算法好坏无关。
若扰动在x^18处,只要把程序中的ve(2)改为ve(3)即可,其图形和此类似。
d.实验结论:
高次多项式扰动求方程解问题是一个病态问题。
2)a.实验方案:
先创建一个20*20的零矩阵A,再通过给定解x和Hilbert矩阵求出列向量b,然后通过LU分解法求出方程HX=b的解X,然后将x-X’这一行向量存入A矩阵中,形成一循环,最后,如果Hilbert矩阵非病态的话,则可输出一个20*20的对角矩阵。
b.编写程序:
>> n=2;
>> A=zeros(20,20);
>> while n<=20
x=1:n;
H=hilb(n);
b=H*x';
[L U]=lu(H);
y=L\b;X=U\y;
A(n,1:n)=x-X';
n=n+1;
end
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 4.455948e-017.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 7.948463e-017.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.798429e-016.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 7.626119e-018.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 6.040620e-017.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 5.444860e-017.
>> A
A =
1.0e+003 *
Columns 1 through 10
0 0 0 0 0 0 0 0 0 0
-0.0000 0.0000 0 0 0 0 0 0 0 0
-0.0000 0.0000 -0.0000 0 0 0 0 0 0 0
-0.0000 0.0000 -0.0000 0.0000 0 0 0 0 0 0
0.0000 -0.0000 0.0000 -0.0000 0.0000 0 0 0 0 0
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0 0 0 0
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0 0 0
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0 0
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001 -0.0003 0.0006 -0.0007 0.0005
0.0000 -0.0000 0.0000 -0.0001 0.0005 -0.0027 0.0096 -0.0223 0.0348 -0.0361
0.0000 -0.0000 0.0000 -0.0004 0.0030 -0.0098 0.0080 0.0593 -0.2570 0.5154
0.0000 -0.0000 0.0000 -0.0001 0.0005 -0.0029 0.0095 -0.0171 0.0086 0.0347
0.0000 -0.0000 0.0000 -0.0000 0.0003 -0.0016 0.0059 -0.0133 0.0145 0.0094
0.0000 -0.0000 0.0000 -0.0001 0.0009 -0.0042 0.0118 -0.0182 0.0082 0.0185
0.0000 0.0000 -0.0000 0.0002 -0.0027 0.0187 -0.0762 0.1806 -0.2249 0.0813
0.0000 0.0000 -0.0000 0.0001 -0.0017 0.0120 -0.0497 0.1224 -0.1699 0.1064
0.0000 -0.0000 0.0000 -0.0003 0.0028 -0.0137 0.0371 -0.0464 -0.0164 0.1243
Columns 11 through 20
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
-0.0000 0 0 0 0 0 0 0 0 0
-0.0002 0.0000 0 0 0 0 0 0 0 0
0.0238 -0.0091 0.0015 0 0 0 0 0 0 0
-0.6091 0.4336 -0.1727 0.0296 0 0 0 0 0 0
-0.0944 0.1170 -0.0824 0.0318 -0.0053 0 0 0 0 0
-0.0624 0.1107 -0.1110 0.0674 -0.0232 0.0035 0 0 0 0
-0.0289 0.0059 0.0103 0.0082 -0.0263 0.0181 -0.0042 0 0 0
0.0524 0.1690 -0.3743 -0.1862 1.0944 -1.2171 0.6004 -0.1156 0 0
-0.0327 0.1652 -0.3051 -0.0485 0.7195 -0.9387 0.5714 -0.1699 0.0191 0
-0.1120 -0.0421 0.0883 0.0222 -0.0628 0.1013 -0.2902 0.3783 -0.2173 0.0469
C.实验结果分析和拓展:
当Hilbert矩阵的阶数比较小时,其解X和给定解x偏差不大;但当Hilbert矩阵的阶数变大时,偏差就会变大。这就说明了Hilbert矩阵是一组病态矩阵,从Matlab运行中的Warning可以看出,其条件数相当大。
d.实验结论:
Hilbert矩阵是一组病态矩阵,用它来做线性方程的系数矩阵时,往往会得出与精确解相差较大的解。
3)a.实验方案:
在区间【-1,1】上取点,先按Chebyshev取点,即xk=cos((2k-1)pi/2/(n+1))取点,然后再进行拉格朗日插值,绘出图和插值点。而后再进行均匀取点再拉格朗日插值。将两种插值结果进行比较。
b.编程实现:
for a=1:10
b=a+1;
for c=1:b
X(c)=cos((2*c-1)*pi/2/(a+1));
Y(c)=1/(1+25*X(c)^2);
x=-1:0.05:1;
end
m=length(x);
for i=1:m
z=x(i);s=0;
for k=1:b
L=1;
for j=1:b
if j~=k
L=L*(z-X(j))/(X(k)-X(j));
end
end
s=s+L*Y(k);
end
y(i)=s;
end
figure(1)
plot(x,y,'r');
hold on;
figure(2)
plot(X,Y,'b*')
hold on
end
for a=2:2:10
b=a+1;
X=linspace(-1,1,b);
Y=1./(1+25*X.^2);
x=-1:0.05:1;
m=length(x);
for i=1:m
z=x(i);s=0;
for k=1:b
L=1;
for j=1:b
if j~=k
L=L*(z-X(j))/(X(k)-X(j));
end
end
s=s+L*Y(k);
end
y(i)=s;
end
figure(1)
plot(x,y,'r');
hold on;
figure(2)
plot(X,Y,'b*')
hold on
end
C.实验结果分析及拓展:
均匀插值时,当n比较大时,就会出现多项式插值的Runge现象,即当插值节点的个数n增加时,Lagrange插值多项式对原来函数的近似并非越来越好。当进行非等距节点插值时,其近似效果明显要比均匀插值是要好。原因是非均匀插值时,在远离原点处的插值节点比较密集,所以其插值近似效果要比均匀插值时的效果要好。
d.实验结论:
利用Chebyshev点进行非等距节点插值的对原函数的近似效果要比均匀节点插值的好。
姓名: 学号:
实验1:
1. 实验项目的性质和任务
通过上机实验,对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。
2.教学内容和要求
1)对高阶多多项式
编程求下面方程的解
并绘图演示方程的解与扰动量 的关系。(实验2.6)
2)对 ,生成对应的Hilbert矩阵,计算矩阵的条件数;通过先确定解获得常向量b的方法,确定方程组
最后,用矩阵分解方法求解方程组,并分析计算结果。(第三章,实验题4)
3)对函数
的Chebyshev点
编程进行Lagrange插值,并分析插值结果。(第四章 实验1)
项目涉及核心知识点
病态方程求解、矩阵分解和方程组求解、Lagrange插值。
重点与难点
算法设计和matlab编程。
1)a.实验方案:
先创建一个20*50的零矩阵X,然后利用Matlab中的roots()和poly()函数将50个不同的ess扰动值所产生的50个解向量分别存入X矩阵中。然后再将ess向量分别和X的20个行向量绘图。即可直观的看出充分小的扰动值会产生非常大的偏差。即证明了这个问题的病态性。
b.编写程序:
>> X=zeros(20,50);
>> ve=zeros(1,21);
>> ess=linspace(0,0.00001,50);k=1;
>> while k<=50
ve(2)=ess(k);
X(1:20,k)=roots(poly(1:20)+ve);
k=k+1;
end
>> m=1;
>> while m<=20
figure(m),plot(ess,X(m,:));
m=m+1;
end
C.实验结果分析和拓展
由上面的实验结果可以看出一个充分小的扰动值可以让方程的解产生非常大的偏差,而且这个偏差随着ess的变大偏差也随即变大。但可以看出在相对小的根处根比较稳定,也就是说这些根关于ess并不敏感,而在较大根处时,根很不稳定,即这些解关于ess的变化是敏感的。这就说明了这个问题本身就是一个病态问题,与算法好坏无关。
若扰动在x^18处,只要把程序中的ve(2)改为ve(3)即可,其图形和此类似。
d.实验结论:
高次多项式扰动求方程解问题是一个病态问题。
2)a.实验方案:
先创建一个20*20的零矩阵A,再通过给定解x和Hilbert矩阵求出列向量b,然后通过LU分解法求出方程HX=b的解X,然后将x-X’这一行向量存入A矩阵中,形成一循环,最后,如果Hilbert矩阵非病态的话,则可输出一个20*20的对角矩阵。
b.编写程序:
>> n=2;
>> A=zeros(20,20);
>> while n<=20
x=1:n;
H=hilb(n);
b=H*x';
[L U]=lu(H);
y=L\b;X=U\y;
A(n,1:n)=x-X';
n=n+1;
end
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 4.455948e-017.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 7.948463e-017.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.798429e-016.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 7.626119e-018.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 6.040620e-017.
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 5.444860e-017.
>> A
A =
1.0e+003 *
Columns 1 through 10
0 0 0 0 0 0 0 0 0 0
-0.0000 0.0000 0 0 0 0 0 0 0 0
-0.0000 0.0000 -0.0000 0 0 0 0 0 0 0
-0.0000 0.0000 -0.0000 0.0000 0 0 0 0 0 0
0.0000 -0.0000 0.0000 -0.0000 0.0000 0 0 0 0 0
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0 0 0 0
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0 0 0
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0 0
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001 -0.0003 0.0006 -0.0007 0.0005
0.0000 -0.0000 0.0000 -0.0001 0.0005 -0.0027 0.0096 -0.0223 0.0348 -0.0361
0.0000 -0.0000 0.0000 -0.0004 0.0030 -0.0098 0.0080 0.0593 -0.2570 0.5154
0.0000 -0.0000 0.0000 -0.0001 0.0005 -0.0029 0.0095 -0.0171 0.0086 0.0347
0.0000 -0.0000 0.0000 -0.0000 0.0003 -0.0016 0.0059 -0.0133 0.0145 0.0094
0.0000 -0.0000 0.0000 -0.0001 0.0009 -0.0042 0.0118 -0.0182 0.0082 0.0185
0.0000 0.0000 -0.0000 0.0002 -0.0027 0.0187 -0.0762 0.1806 -0.2249 0.0813
0.0000 0.0000 -0.0000 0.0001 -0.0017 0.0120 -0.0497 0.1224 -0.1699 0.1064
0.0000 -0.0000 0.0000 -0.0003 0.0028 -0.0137 0.0371 -0.0464 -0.0164 0.1243
Columns 11 through 20
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
-0.0000 0 0 0 0 0 0 0 0 0
-0.0002 0.0000 0 0 0 0 0 0 0 0
0.0238 -0.0091 0.0015 0 0 0 0 0 0 0
-0.6091 0.4336 -0.1727 0.0296 0 0 0 0 0 0
-0.0944 0.1170 -0.0824 0.0318 -0.0053 0 0 0 0 0
-0.0624 0.1107 -0.1110 0.0674 -0.0232 0.0035 0 0 0 0
-0.0289 0.0059 0.0103 0.0082 -0.0263 0.0181 -0.0042 0 0 0
0.0524 0.1690 -0.3743 -0.1862 1.0944 -1.2171 0.6004 -0.1156 0 0
-0.0327 0.1652 -0.3051 -0.0485 0.7195 -0.9387 0.5714 -0.1699 0.0191 0
-0.1120 -0.0421 0.0883 0.0222 -0.0628 0.1013 -0.2902 0.3783 -0.2173 0.0469
C.实验结果分析和拓展:
当Hilbert矩阵的阶数比较小时,其解X和给定解x偏差不大;但当Hilbert矩阵的阶数变大时,偏差就会变大。这就说明了Hilbert矩阵是一组病态矩阵,从Matlab运行中的Warning可以看出,其条件数相当大。
d.实验结论:
Hilbert矩阵是一组病态矩阵,用它来做线性方程的系数矩阵时,往往会得出与精确解相差较大的解。
3)a.实验方案:
在区间【-1,1】上取点,先按Chebyshev取点,即xk=cos((2k-1)pi/2/(n+1))取点,然后再进行拉格朗日插值,绘出图和插值点。而后再进行均匀取点再拉格朗日插值。将两种插值结果进行比较。
b.编程实现:
for a=1:10
b=a+1;
for c=1:b
X(c)=cos((2*c-1)*pi/2/(a+1));
Y(c)=1/(1+25*X(c)^2);
x=-1:0.05:1;
end
m=length(x);
for i=1:m
z=x(i);s=0;
for k=1:b
L=1;
for j=1:b
if j~=k
L=L*(z-X(j))/(X(k)-X(j));
end
end
s=s+L*Y(k);
end
y(i)=s;
end
figure(1)
plot(x,y,'r');
hold on;
figure(2)
plot(X,Y,'b*')
hold on
end
for a=2:2:10
b=a+1;
X=linspace(-1,1,b);
Y=1./(1+25*X.^2);
x=-1:0.05:1;
m=length(x);
for i=1:m
z=x(i);s=0;
for k=1:b
L=1;
for j=1:b
if j~=k
L=L*(z-X(j))/(X(k)-X(j));
end
end
s=s+L*Y(k);
end
y(i)=s;
end
figure(1)
plot(x,y,'r');
hold on;
figure(2)
plot(X,Y,'b*')
hold on
end
C.实验结果分析及拓展:
均匀插值时,当n比较大时,就会出现多项式插值的Runge现象,即当插值节点的个数n增加时,Lagrange插值多项式对原来函数的近似并非越来越好。当进行非等距节点插值时,其近似效果明显要比均匀插值是要好。原因是非均匀插值时,在远离原点处的插值节点比较密集,所以其插值近似效果要比均匀插值时的效果要好。
d.实验结论:
利用Chebyshev点进行非等距节点插值的对原函数的近似效果要比均匀节点插值的好。

2024-08-11 广告
模拟实验模型作为科研与工程领域的重要工具,其核心价值在于精准再现复杂系统或过程,以低成本、低风险的方式预测实际效果。华夏艺匠模型科技通过精细设计与高精度制作,确保模型能够准确反映原型的物理特性、行为模式及潜在变化。我们利用先进材料和技术,使...
点击进入详情页
本回答由BJ华夏艺匠提供
2010-01-14
展开全部
生成对应的Hilbert矩阵,计算矩阵的条件数;通过先确定解获得常向量b的方法,确定方程组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询