数据分析——迭代法求解方程

本例展示了如何利用迭代法求解方程,y值存储在excel中,求解的x值和loss值也存储在excel中,代码如下:

import math
import xlrd
import openpyxl
import warningswarnings.filterwarnings('ignore')# 表达式系数
a=350
b=370
c=-3/7
# 预测值与真实值差值阈值
loss_thres = 1
# 迭代次数阈值
epoch_thres = 990results = []
def fun(x, y):global x_min, x_max, epoch# 表达式y_cal = a/math.sqrt(x) + b*math.exp(c*x)# 预测值与真实值差值loss = y_cal - y# 迭代条件if abs(loss) > loss_thres and epoch < epoch_thres:epoch += 1if loss > 0:x_min = xelse:x_max = xx = (x_min+x_max)/2fun(x, y)else:results.append([x, loss])print(x,loss)book = xlrd.open_workbook('test.xlsx')
sheet = book.sheet_by_name('Sheet1')
nrows = sheet.nrows
for i in range(nrows):# 二分法上限与下限x_min = 1x_max = 100x = (x_min+x_max)/2y = sheet.cell(i, 0).valueepoch = 0fun(x, y)book = openpyxl.load_workbook('test.xlsx')
sheet = book.get_sheet_by_name('Sheet1')
for i in range(len(results)):sheet.cell(i+1, 2).value = results[i][0]sheet.cell(i+1, 3).value = results[i][1]
book.save('test.xlsx')

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部