Python快速基础2-求解线性方程与非线性方程

最近有别个专业的同学来找我帮助求解一个方程,基本求解方程公式如下:

FIRR是未知数,其他已知。

基本数据如下:

tCI-CO
1-171603.51 
2-171603.51 
3161584.14 
4209162.75 
5232952.05 
6232952.05 
7232952.05 
8242127.29 
9242127.29 
10242127.29 
11242127.29 
12242127.29 
13242127.29 
14242127.29 
15242127.29 

 一开始按照普通的方程组进行求解,即利用sympy。返回为空,后利用其它方式进行求解,注意该为非线性方程组,利用scipy.optimize 中的fsolve函数进行求解,代码如下:

import pandas as pd
import math#文件路径
file="chemistryData.xlsx"
data = pd.read_excel(file) #读取数据
data_CI_CO=data['m']
data_t=data['t']from scipy.optimize import fsolve
# 按格式要求定义我们需要求的函数
def f(FIRR):f = 0for i in range(0, 15):f = f + data_CI_CO[i] * (pow(1 + FIRR, -data_t[i]))return f
# 调用fsolve函数
sol_fsolve = fsolve(f, [0.1, 999])  # 第一个参数为我们需要求解的方程,第二个参数为方程解的估计值
print(sol_fsolve)

结果截图: 

 注意有运行警告

 

原先运行不成功的代码:

import sympy   # 解方程的专业模块sympy
FIRR= sympy.symbols("FIRR")   # 申明未知数"FIRR"
f=0
for i in range(0,15):f=f+data_CI_CO[i]*(pow(1+FIRR,-data_t[i]))
print(f)
F= sympy.solve([f],[FIRR])   # 写入需要解的方程体
print(F)  # 打印出结果

 

参考自:

https://www.cnblogs.com/guiguiguoguo/p/11409348.html

https://www.cnblogs.com/ty123/p/10529541.html


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部