目录

  • 写在前面的话
  • 乘幂法
    • 例题
    • 代码
    • 结果
  • 二分法求对称三对角矩阵特征值
    • 代码
    • 结果
  • 复化梯形
    • 例题
    • 代码
    • 结果

写在前面的话

考试结束,《数值计算方法》编程作业发出来给大家看看~

乘幂法

例题

《数值计算方法》P185页例题6.4,误差设定到0.00001时需要10次迭代,所得到的结果与书上的结果接近。当把误差限定得更小则迭代的次数更多。

代码

import numpy as np
import matplotlib.pyplot as pltk = 0
e = 1
temp_max = []
z0 = np.mat([1, 1, 1])
z0 = z0.T
A = np.mat([[2,0,1],[1,-1,2],[0,1,5]], dtype=float)
while e > 0.00001:y = A * z0y1 = y.copy()y1 = abs(y1)x = y1.argmax()z0 = y/y[x]print('迭代次数:',k,'y:',y.T,'m:',y[x],'z:',z0.T)print(' ')temp_max.append(y[x])k = k + 1if k > 1:e = abs(y[x] - temp_max[-2])
λ =  y[x]
print('最大特征值为:', λ)
print('相应特征向量为:\n', (A*z0))

结果

二分法求对称三对角矩阵特征值

代码

import numpy as np
import matplotlib.pyplot as pltdata = [[2, 2, 0, 0],[1, 1, 2, 0],[0, 2, 1, 2],[0, 0, 2, 1]
]def P0(x, data):return 1def P1(x, data):return data[0][0] - xdef P2(x, data):return (data[1][1] - x) * P1(x, data) - data[1][0] ** 2 * P0(x, data)def P3(x, data):return (data[2][2] - x) * P2(x, data) - data[2][1] ** 2 * P1(x, data)def P4(x, data):return (data[3][3] - x) * P3(x, data) - data[3][2] ** 2 * P2(x, data)def ifTong(a, b):if a > 0 and b > 0:return 1elif a < 0 and b < 0:return 1else:return 0def P(x, PX, data):ret = []count = 0for i in range(PX):if i == 0:ret.append(1)elif i == 1:ret.append(data[i - 1][i - 1] - x)else:ret.append((data[i - 1][i - 1] - x) * ret[-1] - data[i - 1][i - 2] ** 2 * ret[-2])for i in range(1, len(ret)):if ret[i] == 0:a = ret[i - 1]count += 1if ret[i - 1] == 0:count += ifTong(ret[i], ret[i - 2])else:count += ifTong(ret[i], ret[i - 1])ret.append(count)return retif __name__ == '__main__':# x1,x2,x3,x4,x5=P0(x,data),P1(x,data),P2(x,data),P3(x,data),P4(x,data)# print(x1,x2,x3,x4,x5)x = np.arange(-3, 5.5, 0.000025)ret = []for i in x:ret.append(P(i, 5, data))ret = np.transpose(ret)ret = np.insert(ret, 0, x, axis=0)print(ret)ans = []for i in range(len(ret[0]) - 1):ans.append(ret[-1][i] - ret[-1][i + 1])# print(ans)for i in range(len(ans)):if ans[i] != 0:print('有一个值在', ret[0][i], '和', ret[0][i + 1], '之间')pass

结果

复化梯形

例题

《数值计算方法》P103页例题4.1中表4.3的结果和代码运行结果一致。

代码

import math
import numpy as np
import matplotlib.pyplot as pltdef f1(x):y= np.exp(x)*np.cos(x)return y
def result(f,a,b,n):ti=0.0h=(b-a)/nti=f(a)+f(b)for k in range(1,int(n)):xk=a+k*hti = ti + 2 * f(xk)result = ti*h/2print("复化梯形公式计算结果为:", result)if __name__ == '__main__':n = 2k = 10for i in range(1,k):print("n= ", n)result(f1,0,math.pi,n)n = n*2

结果

乘幂法、复化梯形以及二分法求特征值【相关例题python实现】相关推荐

  1. 反幂法求矩阵特征值matlab,幂法反幂法求解矩阵最大最小特征值及其对应的特征向量.doc...

    数值计算解矩阵的按模最大最小特征值及对应的特征向量 一.幂法 1. 幂法简介: 当矩阵A满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量.矩阵A需要满足的条件为: 存在n个线性无 ...

  2. 【数值分析】微分求积:复化梯形、复化辛浦生

    本科课程参见:<软件学院那些课> 复化梯形 将积分区间[a,b]划分n等分,步长,求积节点,在每个小区间上应用梯形公式 然后将它们累加求和,作为所求积分I的近似值. 记

  3. 微分求积:复化梯形、复化辛浦生

    复化梯形 将积分区间[a,b]划分n等分,步长,求积节点,在每个小区间上应用梯形公式 然后将它们累加求和,作为所求积分I的近似值. 记 式为复化梯形求积公式,下标n表示将区间n等分. 算法流程 算法代 ...

  4. 复化梯形c语言计算定积分,第六章 函数和宏定义实验(2)

    1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数getpower(int x,int y),并在主程序中实现输入输出 4.编写计算学生年龄的递归函数 5. ...

  5. 用c语言写复化梯形积分公式,第六章 函数和宏定义实验(2)

    C程序设计实验报告 姓名:童飞    实验地点:教学楼514教室    实验时间:5月16日 实验项目: 1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数 ...

  6. python用复化梯形公式积分_复化梯形求积分——用Python进行数值计算

    用程序来求积分的方法有很多,这篇文章主要是有关牛顿-科特斯公式. 学过插值算法的同学最容易想到的就是用插值函数代替被积分函数来求积分,但实际上在大部分场景下这是行不通的. 插值函数一般是一个不超过n次 ...

  7. 计算方法之数值积分方法——复化梯形法,复化辛普森法,龙贝格法,三点高斯公式 附matlap程序下载

    数值积分 复化求积法就是将求积区间[a,b]划分为n等份,步长h=(b-a)/n,等分点为xi=a+ih,i=0,1,2,-,n.然后用低阶求积公式求的每个字段[xi,xi+1]上的积分值I,然后再将 ...

  8. 7-5 二分法求多项式单根 (20分)

    二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f( r )=0. 二分法的步骤为: 检查区间长度,如 ...

  9. c语言simpson积分计算方法,数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序...

    数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序 数值分析第五次程序作业 PB09001057 孙琪 [问题] 分别编写用复化Simpson积分公式和复化梯形积分公式计算积分的通 ...

最新文章

  1. WPF实现一个彩虹按钮
  2. 霍金竟然亲口承认自己是个赌徒!明明失败了不止一次,“菜鸡”却成了神话!...
  3. Java 注解指导手册 – 终极向导
  4. redis 用户订单缓存_Redis实战(12)-基于Key失效和定时任务实现订单支付超时自动失效...
  5. BW作为源系统连接时,激活DSO或其他模型时提示8*数据源不存在,无法激活
  6. jQuery构造函数init参数分析(三)
  7. 网件WNDR4300刷openwrt/LEDE固件
  8. 车牌号识别依托OCR文字识别核心
  9. spss和python什么区别_资深大牛:Python、R语言、SAS、SPSS优缺点比较
  10. linux脚本课程设计通讯录,Linux简单电子通讯录源码
  11. 【【运维】9个网络故障排除经典案例,你都得会吗?】
  12. git clone与git pull区别
  13. Torus登场:CoreOS打造的新一代分布式存储系统
  14. 三种迭代法解方程组(雅可比Jacobi、高斯-赛德尔Gaisi_saideer、逐次超松弛SOR)
  15. 设计表:多张表存储学生成绩及各种信息
  16. 网线的制作方法及步骤
  17. 三七互娱php笔试题,三七互娱笔试
  18. linux上玩无尽空间,Ubuntu Linux上最好的5款免费游戏
  19. 【虚幻引擎UE】UE4/UE5 通用插件推荐及使用介绍
  20. MT2503资料汇总,MT2503原理图

热门文章

  1. 解决ppt里面添加flash后在其他电脑上不能播放的问题
  2. Git 仓库基础操作
  3. 【静态站点(二)】之 Gridsome 基础
  4. 【Java】求100以内的斐波那契数列
  5. 【Python】获取星期字符串
  6. xargs命令和find的-exec
  7. python lxml使用_使用lxml和Python进行Web抓取的简介
  8. Spring缓存注解@Cache使用
  9. extra 实现 别名,条件,排序等
  10. SpringBoot-拦截器和文件上传