




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上机实验用二分法求非线性方程的实根算法思路:找到方程根可能存在的解区间,然后循环的取区间中值,将原解区间一分为二, 然后判断两个小区间解的存在性,藉此缩小解区间的范围,达到逼近解的效果。算法流程图:开始源程序代码:def f(x):return x*xfcx - 2*x -5 5left = input (打二r)right = input。Qx0.0 =酶01if left)*f(right)00: 岛13= while f(x) ! = 0 ; print xG5 .:xYldt+ri前G/316:lil.7 :iF f (x) *f (left) & IISright=x19:: if
2、abstright-leFt) e:的;20;:break必2T 电:与工工 :iJxontlnueJ,else ::j24:j =Left=x“25If ab5(riht-lGt) A/yAA/XA/X/pcontinue29=; i :.30 print x实验结果:_ O Console 及CTi4 |terminateda spidcnpy DjVyth(HApythonxw司鼻堂人蓝司:23乐2.252.125 2.B&25 203” 31 日 9375 2.1015625 .09765625 5.0557031352.0947265625 2.0342362S125 2.0wa24
3、2Laa 2.05460449219 2.09454345703结果分析:二分法可以粗略确定解所在的区间,然而要想真正的逼近并且达到一定的精度,关键在 二分的次数,以及解区间的大小,由实验可见,实验执行了很多次二分的过程,最后的区间 范围小于要求的误差限即可。由实验结果可见,后面几个实验数据,前面几位基本上固定不动了。上机实验二用迭代法求非线性方程的实根算法思路:x 1=(x),因为此等价方程的一阶倒数 将x1代入等价方程后的新结果x2 =(x1)将方程f (x) = 0 ,化为一个等价的方程 的绝对值必须小于1,可以由泰勒级数公式发现, 更加逼近真实值算法流程图:开始K=1X1 =(x0)结
4、束源程序代码: -150即idu黑iinport math- def fa(K):return (natti .exp( -x)+l5 x input (F =士H )6 匕二 ,0005iuhi le abs( f a k) - k) c :M =干m (耳)! 9print xx fa(x)print x实验结果:曰 Console 图 spider.py (D:Pythonpython.exe 害常人才代朝:二:卡|i.e1.367879441171.2546463 Se641.2B5176G7456l-27650L7ieS51.27853375see1.278319997021.27B
5、50479654实验结果分析:由实验结果可见,这种解法比二分法要快的多,可以更快的收敛到根,但初始迭代值,必须坐落在其收敛域中。上机实验三用牛顿法求非线性方程的实根算法思路:真实值x*是y=f (x)与x轴的交点,由计算(xk, f (xk)的切线与x轴的交点xk+1, 重复上述过程,可以使 xk+n逼近x*算法流程图:源程序代码:p s.pider 第UCGfl 1 nC-UlTT qimport 时mth- def f(xj!return )c*niath. exp( -x)51 def fa (x):Eturn 1-Hrath. exp( -x)7S x = input(,:一 * )9
6、 e - 0.0O0QLIS |11 whil abstf(x)/f3(k) & : .,12x = ic-f (x)yf a(K)L13print xx = x-i(x)/fa(x)print x实验结果:mpr r jur rvV 0 J了 jAle Edit Refactoring Source Navigate Search Fr3 r叁;a Console 笈9 spider.py D:Pythonpyth o n .exe才蛤人生代枕6 5|&r 56631131970.56714316503556714325041实验结果分析:牛顿迭代法拥有比上述迭代法更快的迭代速度,因其牛顿迭
7、代法为至少二阶收敛,故比实验二收敛的速度更加快。上机实验一用高斯列主消元法求解线性方程组 算法思路:型同与矩阵的行消元变换,只不过,消元变换之前,先用初等行变换将主对角线上 的元素变为列元素的绝对值最大的那个元素。算法用递归的方法实现的 算法流程图:开始 import math源程序代码:#coding=utf-8回代求出解结束输出 解def major (x,y,A,n,b): if (x=n or y=n): returnmax = abs(Axy) row = xfor i in range(x,n, 1):if abs(Aiy) max: max =abs(Aiy) row = ite
8、mp = AxAx = ArowArow = temptemp = bxbx = brow brow=tempmajor(x+ 1 ,y+ 1,A,n,b)#递归寻找主元素return def eliminate (x,y,A,n,b): if (x=n or y=n): return TOC o 1-5 h z if Axy=0:print error returnforiinrange(x+1 ,n,1):R = Aiy/Axy forkinrange(y+1 ,n,1):Aik = round(Aik - R*Axk ,6)bi = round(bi - R*bx ,6)Aiy=0eli
9、minate(x+ 1, y+ 1, A, n,b) #递归进行消元return def back (x,y,A,X,n,b): if (x 0or yi- dp- h 虹 lc(K,y,n,bj :37jt y43return4445 A =47也也1.1.自*1,仇L8,LL优L.上国J 屈.49菠电,g】,/、ZL5111.0,1531仇上“a.L 仇L电.凯 L 孔Ldl.at.由j-Mil.%2.%1.0,L%L%L 露 1.苞,.31.%1.可,553%明工41也工.*1.也1如1*%1.%修士S657 b 3、.R.&d吊应也旌也后1肛小咒附户耳风下了-日产5-打赤 X 一曲.0
10、避浦乱日,心为我露乱射心力力心0m节 major ft a % 1 % 的EG elininaE(0jO,AlGb)口工 backf.A.K.ie.b、曰anta1 口箕遂0r厨wlermirmledA Tpid 白r.py【OtPythorAponMEi.e, 3, 5也 %a 5,e, fl.e,九电*机* q.也 二肌叼结果分析:列主元素高斯消去法,其计算主要在于消去过程的乘法,由于将主对角线上的元素都变 成了列主元素,因此减少了有小数被大数吃掉的情况上机实验五用雅克比迭代法解线性方程组Max|xi -yi| e ):if k 100 :print(迭代失败)breakk += 1for
11、 i in range( 0, 3):sum = 0.0for j in range( 0, 3):if i != j :sum += aij * xjyi = (bi - sum) / aii d = 0.0for j in range( 0, 3):#计算无穷阶范数if d d :norm = dfor j in range( 0, 3):xj = yjprint k print x实验结果:,门4 - k += 11 15 for i in rarge(0,3: sum - 0.0, 17:for j in range(fi,3):rl8:=if 1 1= j :S5MI k- ji j
12、j / X2:yi - (bi bum) / ai61 d = ti.o.for j in rargE(0,i): 心3i+(1 ri ;nJ6 ::norn - d27 for j in rarige(0j33:xj = yjj2g print k30 print x口 Me业 E3 M / G | 事eler Ein 峨d % sp 诂lerpy IDaPythorApWlroiLw鼠w18L3 99999G419g$165G, 2.999973&S379S1&4, 1,999996938339203结果分析:由结果可知,总共迭代 18次,结果都在误差范围之内,与高斯消元法不同的是,迭代
13、法每一次迭代执行 n (n -1)次乘法,也不一定比高斯消元法速度快上机实验六用拉格朗日插值多项式求函数的近似值算法思路:构造一个唯一的高次多项式,使所有样本点( xi , yi)都有f (xi) = yi 算法流程图:开始输入(xi,yi) ,ni=0,1.n源程序代码:k=k+1import math1.02652 x= 0.4 , 0,55 , 0.65 , 0.8 , 0,9 y= 0,4175 , 0.57815 , 0.69657 , 0.88811x1= 0,5 , 0,85 , 1.05 TOC o 1-5 h z foriinx1:z= 0.0forkinrange(0,5)
14、:t= 1.0forlinrange(0,5):ifl!= k :t=t*(i - xl) / (xk - xl)z += t*ykprint p(x) =+ str(z)实验结果:J-1 日 一-1 inport math3苒=10,4押,50.65乱名.酊刃d y= 0.4175 , 0.S781S ,0.6g657 , 0.RS811 /1.02652*1-弧 5j0.B5J.85 For i in wl 7Z-0.0Hfar k in rangc(5,S):3t=T.。10far 1inrange(0j5);Sil:if1 I- k ;*17_ t-t*(l - *1) / (4N -
15、 x(l)i t- t*yfkprint p(x) 1r 4- str(z)如田1k国. X派R皇| spider.py Djhcsnyiiin-mLexsp(x)二日.52Mlb” 1429p(x) =6.956049971429p(x) 1.2582257143结果分析:实验根本不会计算出高次多项式的参数,每次将输入的x代入到各个基函数中运算即可,插值结果分别为 p(0.5) = 0.522 ,p(0.85) = 0.956,p(1.05) = 1.258上机实验七用牛顿插值多项式求函数的近似值算法思路:构造一个唯一的高次多项式,使所有样本点( xi , yi)都有f (xi) = yi,
16、但是多项式 系数不需要每次重新计算,添加一个样本点,计算一次差商即可,本题运用滚动数组而非矩阵的方式计算差商算法流程图:Fi =Ti=yi牛顿插值法#coding=utf-8x= 0.4 , 0,55 , 0.65 , 0.8 , 0,9 y= 0,4175 , 0.57815 , 0.69657 , 0.88811 , 1.02652 x1= 0,5 , 0,85 , 1.05 F = y:T = y:def f (a):z =0.0for i in range( 0, 5):t= 1.0for k in range( 0,i):t=t*(a-xk)z += t*Fireturn zfor i in range( 0, 5):if i% 2 = 0:Fi = Tielse :Ti = Fifor k in range(i+ 1, 5):if i % 2 = 0:Fk = (Tk - Tk- 1) / (xk- xk-i- 1)else :Tk = (Fk - Fk- 1) / (xk- xk-i- 1)for i in x1:print f(i)运行结果4 y= q.4175 ,H*57815 ,电.69657 1KP25524 xl=Oi5JO.O5JlH05& F viT =def f!&2 =9.09for i in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省饲料项目创业计划书
- 乌镇招聘面试题及答案
- 伊利数字化转型的全域探索
- 全球销售分销市场扩展合同
- 法律英语合同条文阅读理解题
- 人文地理:《全球化背景下中国文化发展》课程
- 餐饮股东合作协议(含品牌推广与维护)
- 集装箱车库买卖合同范本及运输服务协议
- 高端车系销售与售后服务一体化协议
- 大数据项目公司股权投资及数据分析合作协议
- 提高处方合格率管理
- 云南教育强省建设规划纲要(2024-2035年)知识培训
- 山体护坡施工技术方案
- QC/T 1211-2024乘用车车门内开拉手总成
- 2025年江苏省建筑安全员A证考试题库及答案
- 对外投资合作国别(地区)指南 -科威特-20250106-00615
- 丝绸产业品牌建设-洞察分析
- 【机器人】2021年全球外骨骼机器人产业研究报告-CBInsights
- 智慧燃气系统建设方案
- 2024年浙江绍兴诸暨市交通运输局下属事业单位招聘编外用工6人历年管理单位遴选500模拟题附带答案详解
- 学校保安保洁及宿管服务投标方案(技术方案)
评论
0/150
提交评论