第一范文网 - 专业文章范例文档资料分享平台

东南大学数值分析上机

来源:用户分享 时间:2025/9/8 0:53:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

东南大学土木工程学院 数值分析上机题

第一章

一、题目

设SN??j?2N13111,其精确值为(??)。 222NN?1j?1(1)编制按从大到小的顺序SN?程序。

(2)编制按从小到大的顺序SN?通用程序。

111,计算SN的通用?????22?132?1N2?1111,计算SN的?????N2?1(N?1)2?122?1(3)按两种顺序分别计算S102,S104,S106,并指出有效位数。(编制程序时用单精度) (4)通过本次上机题,你明白了什么? 二、MATLAB程序

N=input('请输入N(N>1):');

AccurateValue=single((0-1/(N+1)-1/N+3/2)/2); %single使其为单精度 Sn1=single(0); %从小到大的顺序 for a=2:N; Sn1=Sn1+1/(a^2-1); end

Sn2=single(0); %从大到小的顺序 for a=2:N; Sn2=Sn2+1/((N-a+2)^2-1); end

fprintf('Sn的值 (N=%d)\\n',N);

disp('____________________________________________________') fprintf('精确值 %f\\n',AccurateValue); fprintf('从大到小计算的结果 %f\\n',Sn1); fprintf('从小到大计算的结果 %f\\n',Sn2);

disp('____________________________________________________')

东南大学土木工程学院 数值分析上机题

三、结果

请输入N(N>1):100 Sn的值 (N=100)

____________________________________________________ 精确值 0.740049 从大到小计算的结果 0.740049 从小到大计算的结果 0.740050

____________________________________________________ 请输入N(N>1):10000 Sn的值 (N=10000)

____________________________________________________ 精确值 0.749900 从大到小计算的结果 0.749852 从小到大计算的结果 0.749900

____________________________________________________

请输入N(N>1):1000000 Sn的值 (N=1000000)

____________________________________________________ 精确值 0.749999 从大到小计算的结果 0.749852 从小到大计算的结果 0.749999

____________________________________________________ 四、结果分析

可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比较准确。

东南大学土木工程学院 数值分析上机题

第二章

一、题目

(1)给定初值x0及容许误差?,编制牛顿法解方程f(x)=0的通用程序。

3(2)给定方程f(x)?x?x?0,易知其有三个根x1???33,x2??0,x3??3

①由牛顿方法的局部收敛性可知存在??0,当x0?(??,??)时,Newton迭代序列收敛于根x2*。试确定尽可能大的?。

②试取若干初始值,观察当x0?(??,?1),(?1,??),(??,??),(?,1),(1,??)时Newton序列的收敛性以及收敛于哪一个根。 (3)通过本上机题,你明白了什么?

二、MATLAB程序

文件fx.m

function Fx=fx(x) %% 定义函数f(x) Fx=x^3/3-x;

文件dfx.m

function Fx=dfx(x) %% 定义导函数df(x) Fx=x^2-1;

%% Newton法求方程的根%% clear

ef=10^-6; %这里取容许误差10^-6 k=0;

x0=input('请输入 Xo的值:');

disp('k Xk'); %使用空格将其分隔开 fprintf('0 %f\\n',x0); flag=1;

while flag==1 && k<=10^3 x1=x0-fx(x0)/dfx(x0); if abs(x1-x0)

东南大学土木工程学院 数值分析上机题

flag=0; end k=k+1; x0=x1;

fprintf('%d %f\\n',k,x0); end

%%寻找最大的delta值%% clear %% flag=1; k=1; x0=0; while flag==1

delta=k*10^-6; Tlta与k有关 x0=delta; k=k+1; m=0; flag1=1;

while flag1==1 && m<=10^3 x1=x0-fx(x0)/dfx(x0);

if abs(x1-x0)<10^-6

flag1=0; %给定容许误差 end m=m+1; x0=x1; end

if flag1==1||abs(x0)>=10^-6 %未小于给定误差时停止循环 flag=0; end end

fprintf(' delta 的最大值是 %f\\n',delta);

东南大学土木工程学院 数值分析上机题

三、结果

1.运行search.m文件

结果为:

delta 的最大值为 0.774597

*即得最大的?为0.774597,Newton迭代序列收敛于根x2=0的最大区间为

(-0.774597,0.774597)。 2.

(1)区间(??,?1)上取-1000,-100,-50,-30,-10,-8,-7,-5,-3

k Xk 0 -10000.000000 1 -6666.666733 2 -4444.444589 3 -2962.963209 4 -1975.309031 5 -1316.873025 6 -877.915856 7 -585.277997 8 -390.186470 9 -260.126022 10 -173.419911 11 -115.617118 12 -77.083845 13 -51.397880 14 -34.278229 15 -22.871618 16 -15.276949 17 -10.228459 18 -6.884780 19 -4.688772 20 -3.274807 21 -2.407714 22 -1.939750 23 -1.761259 24 -1.732762 25 -1.732051 26 -1.732051 k Xk 0 -100.000000 1 -66.673334 2 -44.458891 3 -29.654263 4 -19.792016 5 -13.228447 6 -8.869651 7 -5.989231 8 -4.107324 9 -2.910755 10 -2.200189 11 -1.848687 12 -1.742235 13 -1.732139 14 -1.732051 15 -1.732051 k Xk 0 -50.000000 1 -33.346672 2 -22.251125 3 -14.864105 4 -9.954458 5 -6.703960 6 -4.571013 7 -3.200520 8 -2.364515 9 -1.919703 10 -1.756405 11 -1.732548 12 -1.732051

搜索更多关于: 东南大学数值分析上机 的文档
东南大学数值分析上机.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6ubmm7ogs32r4yj9c204_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top