导航:首页 > 源码编译 > 数值算法的稳定性上机实验

数值算法的稳定性上机实验

发布时间:2022-04-23 09:39:51

⑴ 数值计算方法实验课题目(求定积分方面)

只会第一个牛顿莱布尼兹公式的做法:
4提出积分号,1/(1+X^2)的原函数为arctanX,故积分出来为4*arctanX 带入上下限为4*arctan1-4*arctan0=π
其他的不会做了

算法的数值稳定性和数学问题本身的稳定性的异同

算法的稳定性主要是描述算法的优劣,而数学问题的稳定性是讨论一个东西的数学特性.

⑶ 求一篇数值分析实验报告

数值分析实验报告

姓名: 学号:

实验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

⑹ (C语言版)数据结构算法的错误修改,上机实验操作的修改

Delete(head)此句有点问题。此句是否为预定义。
head应该是LinkList类型的吧。改成Delete(LinkList);

后加的程序中,Delete(LinkList *head)中head重复定义,则在程序内不必在定义head,去掉第二行LinkList *head试试。
程序内容我没细看,只是看了看语法

⑺ 数值计算中稳定性是一个重要概念,什么是稳定性

对一个问题的求解可以有多种不同的方法,难易迥异。在计算机科学中往往把要解决的问题转化为数学模型来加以解决。由于机器字长的限制和存贮空间
的有限性,不同的模型由于误差的存在,往往使计算的结果存在很大的差异。若执行的结果与精确解之间的误差很大的话,势必会影响与之相关的数据的精确度。这
就引出了我们的问题:数值稳定性。

定义1对于一个已经存在的算法,若输入数据的误差在计算过程中迅速增长而得不到控制,则称该算法是不稳定的,否则是数值稳定的。

⑻ 在数值计算中实现算法的数值稳定性的若干方法

拿华腾的交通卡系统做例子吧
先说数据结构:
程序里面有很多用户信息,这些信息是用结构体存放,是用链表的形式,还是用哈希表等等的方法进行排列,这个就是数据结构

算法:
要从这些数据结构里找出一个结点,是用遍历搜索呢还是用折半搜索之类的方法,叫做算法。

LZ可以体会下。

⑼ 数值计算时不同阶精度的算法混合使用会不会更容易造成数值不稳定

1.精度不同的算法,对初始数据的要求不同,有可能会由于初始数据的精度影响了整个算法的精度

2.精度不同的算法,有可能会稳定程度不同,混合使用时可能刚好会有放大误差的效果

3.精度不同的算法,有可能原理根本不同,所以不能混合使用

4.感觉上,基于迭代的算法应该可以使用吧?

个人见解.......

阅读全文

与数值算法的稳定性上机实验相关的资料

热点内容
hp服务器上的ip地址 浏览:560
c语言编程计算100以内的所有素数 浏览:622
命令输入框 浏览:890
冰箱压缩机发烫噪音 浏览:85
单片机栈溢出符号 浏览:330
命令与征服修改器怎么用 浏览:485
什么app比较费钱 浏览:832
为什么同一个app的功能不一样 浏览:232
小型工作室用什么服务器好 浏览:995
程序员的兴趣 浏览:413
华为服务器有什么好 浏览:701
程序员和测试之间的关系 浏览:945
加密蚊帐什么意思 浏览:151
javalistclear 浏览:607
哪个app上民宿多靠谱 浏览:828
重庆服务器租用哪里有云服务器 浏览:453
土星模拟器文件夹 浏览:902
文件夹文件袋文件盒 浏览:695
云服务器打开f8指令 浏览:243
盈透证券加密币 浏览:72