前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用numpy解决解方程组的基本问题

利用numpy解决解方程组的基本问题

作者头像
算法与编程之美
发布2023-08-22 14:25:00
1220
发布2023-08-22 14:25:00
举报

1 问题

进入大学,我们接触了线性代数,利用线性代数解方程组比高中慢慢计算会好了许多,快捷许多,我们作为编程人员,有没有用python解决解方程组的办法呢?

2 方法

我们提出使用python的numpy解方程。

  1. 找到用于解方程组的系数和常数数据;
  2. 将数据按照线性代数的方法进行排列;
  3. 利用numpy和相关函数、库进行运算;

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

import numpy as np# A = np.mat([[10, -1, -2], [-1, 10, -2], [-1, -1, 5]]) # A为系数矩阵# b = np.mat([[72], [83], [42]]) # b为常数列A = np.mat("10, -1, -2; -1, 10, -2; -1, -1, 5") # A为系数矩阵b = np.mat("72;83;42") # b为常数列inv_A = np.linalg.inv(A) # A的逆矩阵inv_A = A.I # A的逆矩阵# x = inv_A.dot(b) # A的逆矩阵与b做点积运算x = np.linalg.solve(A, b)print(x)

我们可以输出:

[[11.]

[12.]

[13.]]

3 结语

针对这一问题,提出使用numpy库、solve()函数等方法运用该方程组的系数矩阵和常数矩阵进行计算求得逆矩阵,最终得出结果求得未知数。通过实验,证明该方法是有效的。其中对于正则表达式的书写方法还不够熟练,对于函数solve()的使用还存在很多未知,由于知识和技术上存在问题以上代码暂时只用于三阶及以下和部分高阶的方程组,我们相信通过不断地学习与练习,我们能进一步优化方法,最终达成目的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档