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 = 0
    for 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值