使用sympy解联立式程式

解下列联立式方程式。

a+b=1

5a+b=2

from sympy import Symbol, solvea = Symbol('a')                 # 定义公式中使用的变量
b = Symbol('b')                 # 定义公式中使用的变量
eq1 = a + b - 1                 # 方程式 1
eq2 = 5 * a + b - 2             # 方程式 2
ans = solve((eq1, eq2))
print(type(ans))
print(ans)
print('a = {}'.format(ans[a]))
print('b = {}'.format(ans[b]))

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
<class 'dict'>
{a: 1/4, b: 3/4}
a = 1/4
b = 3/4[Done] exited with code=0 in 1.155 seconds

解下列联立式程式:

600a+b=0

1000a+b=12

在Python Shell输出上述a+b的值,当解出a与b的值后,用这2个值建立下列函数:

y=ax+b

绘制x是0~2500的函数图形,并绘制f(600)和f(1000)的坐标点。

import matplotlib.pyplot as plt
from sympy import Symbol, solve
import numpy as npa = Symbol('a')                 # 定义公式中使用的变量
b = Symbol('b')                 # 定义公式中使用的变量
eq1 = a + b - 1                 # 方程式 1
eq2 = 5 * a + b - 2             # 方程式 2
ans = solve((eq1, eq2))
print('a = {}'.format(ans[a]))
print('b = {}'.format(ans[b]))pt_x1 = 600
pt_y1 = ans[a] * pt_x1 + ans[b]         # 计算x=600时的y值
pt_x2 = 1000
pt_y2 = ans[a] * pt_x2 + ans[b]         # 计算x=1000时的y值x = np.linspace(0, 2500, 250)
y = ans[a] * x + ans[b]
plt.plot(x, y)                          # 绘函数直线
plt.plot(pt_x1, pt_y1, '-o')            # 绘点 pt1
plt.text(pt_x1+60, pt_y1-10, 'pt1')     # 输出文字pt1
plt.plot(pt_x2, pt_y2, '-o')            # 绘点 pt2
plt.text(pt_x2+60, pt_y2-10, 'pt2')     # 输出文字pt2
plt.xlabel("Customers")
plt.ylabel("Profit")
plt.grid()                              # 加网格线
plt.show()

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
a = 1/4
b = 3/4[Done] exited with code=0 in 23.748 seconds

使用下列函数:

y=f(x)=0.03x-18

绘制x是0~2500的函数图形,并标记来客数是1500人时的坐标点,相当于计算f(1500),同时在Python Shell窗口输出来客数是1500人时的获利金额。

import matplotlib.pyplot as plt
import numpy as np
a = 0.03
b = -18
x = np.linspace(0, 2500, 250)
y = a * x + b
pt_x = 1500
pt_y = a * pt_x + b
print('f(1500) = {}'.format(pt_y))
plt.plot(x, y)                          # 绘函数直线
plt.plot(pt_x, pt_y, '-o')              # 绘点 f(1500)
plt.text(pt_x-150, pt_y+3, 'f(1500)')   # 输出文字f(1500)
plt.xlabel("Customers")
plt.ylabel("Profit")
plt.grid()                              # 加网格线
plt.show()

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
f(1500) = 27.0[Done] exited with code=0 in 33.81 seconds

计算获得拉高到48万元需有多少来客数,使用Python Shell窗口输出,同时绘制此点。

import matplotlib.pyplot as plt
import numpy as np
a = 0.03
b = -18
x = np.linspace(0, 2500, 250)
y = a * x + b
pt_y = 48
pt_x = (pt_y + 18) / 0.03
print('获利48万需有 {} 来客数'.format(int(pt_x)))
plt.plot(x, y)                                      # 绘函数直线
plt.plot(pt_x, pt_y, '-o')                          # 绘点
plt.text(pt_x-150, pt_y+3, '('+str(int(pt_x))+','+str(pt_y)+')')
plt.xlabel("Customers")
plt.ylabel("Profit")
plt.grid()                                          # 加网格线
plt.show()

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
获利48万需有 2200 来客数[Done] exited with code=0 in 22.79 seconds

鸡免同笼:

古代《孙子算经》有一句话:今有鸡兔同笼,上有三十五头,下有百足,问鸡兔各几何?

x代表chicken,y代表rabbit。

chicken+rabbit=35                x+y=35

2*chicken+4*rabbit=100        2x+4y=100

使用下列联立式方程,绘制鸡兔同笼的问题,同时计算鸡和兔子的数量。

公式1:x+y=35

公式2:2x+4y=1000

import matplotlib.pyplot as plt
from sympy import Symbol, solve
import numpy as npx = Symbol('x')                         # 定义公式中使用的变量
y = Symbol('y')                         # 定义公式中使用的变量
eq1 = x + y - 35                        # 方程式 1
eq2 = 2 * x + 4 * y - 100               # 方程式 2
ans = solve((eq1, eq2))
print('鸡 = {}'.format(ans[x]))
print('兔 = {}'.format(ans[y]))line1_x = np.linspace(0, 100, 100)
line1_y = [35 - y for y in line1_x]
line2_x = np.linspace(0, 100, 100)
line2_y = [25 - 0.5 * y for y in line2_x]plt.plot(line1_x, line1_y)              # 绘函数直线公式 1
plt.plot(line2_x, line2_y)              # 绘函数直线公式 2plt.plot(ans[x], ans[y], '-o')          # 绘交叉点
plt.text(ans[x]-5, ans[y]+5, '('+str(ans[x])+','+str(ans[y])+')')
plt.xlabel("Chicken")
plt.ylabel("Rabbit")
plt.grid()                              # 加网格线
plt.show()

运行结果如下:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
鸡 = 20
兔 = 15[Done] exited with code=0 in 15.086 seconds

绘制下列联立方程式的线条:

x+y=100

2x+4y=350

import matplotlib.pyplot as plt
from sympy import Symbol, solve
import numpy as npx = Symbol('x')                         # 定义公式中使用的变量
y = Symbol('y')                         # 定义公式中使用的变量
eq1 = x + y - 100                       # 方程式 1
eq2 = 2 * x + 4 * y - 350               # 方程式 2
ans = solve((eq1, eq2))
print('菜鸟业务员须外出天数 = {}'.format(ans[x]))
print('资深业务员须外出天数 = {}'.format(ans[y]))line1_x = np.linspace(0, 100, 100)
line1_y = [100 - y for y in line1_x]
line2_x = np.linspace(0, 100, 100)
line2_y = [(350 - 2 * y) / 4 for y in line2_x]plt.plot(line1_x, line1_y)              # 绘函数直线公式 1
plt.plot(line2_x, line2_y)              # 绘函数直线公式 2plt.plot(ans[x], ans[y], '-o')          # 绘交叉点
plt.text(ans[x]-5, ans[y]+5, '('+str(ans[x])+','+str(ans[y])+')')
plt.xlabel("Junior Salesman")
plt.ylabel("Senior Salesman")
plt.grid()                              # 加网格线
plt.show()

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
菜鸟业务员须外出天数 = 25
资深业务员须外出天数 = 75[Done] exited with code=0 in 17.229 seconds

绘制下列垂直相交的线条:

=x

=-x+2

import matplotlib.pyplot as plt
from sympy import Symbol, solve
import numpy as npx = Symbol('x')                         # 定义公式中使用的变量
y = Symbol('y')                         # 定义公式中使用的变量
eq1 = x - y                             # 方程式 1
eq2 = -x -y + 2                         # 方程式 2
ans = solve((eq1, eq2))
print('x = {}'.format(ans[x]))
print('y = {}'.format(ans[y]))line1_x = np.linspace(-5, 5, 10)
line1_y = [y for y in line1_x]
line2_x = np.linspace(-5, 5, 10)
line2_y = [-y + 2 for y in line2_x]plt.plot(line1_x, line1_y)              # 绘函数直线公式 1
plt.plot(line2_x, line2_y)              # 绘函数直线公式 2plt.plot(ans[x], ans[y], '-o')          # 绘交叉点
plt.text(ans[x]-0.5, ans[y]+0.3, '('+str(ans[x])+','+str(ans[y])+')')
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.grid()                              # 加网格线
plt.axis('equal')                       # 让x, y轴距长度一致
plt.show()

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
x = 1
y = 1[Done] exited with code=0 in 14.334 seconds

绘制下列垂直相交的线条。

y=0.5x-0.5

y=-2x+7

import matplotlib.pyplot as plt
from sympy import Symbol, solve
import numpy as npx = Symbol('x')                         # 定义公式中使用的变量
y = Symbol('y')                         # 定义公式中使用的变量
eq1 = 0.5 * x - y - 0.5                 # 方程式 1
eq2 = -2 * x - y + 7                    # 方程式 2
ans = solve((eq1, eq2))
print('x = {}'.format(ans[x]))
print('y = {}'.format(ans[y]))line1_x = np.linspace(-5, 5, 10)
line1_y = [(0.5 * y - 0.5) for y in line1_x]
line2_x = np.linspace(-5, 5, 10)
line2_y = [(-2 * y + 7) for y in line2_x]plt.plot(line1_x, line1_y)              # 绘函数直线公式 1
plt.plot(line2_x, line2_y)              # 绘函数直线公式 2plt.plot(ans[x], ans[y], '-o')          # 绘交叉点
plt.text(ans[x]-0.7, ans[y]+0.5, '('+str(int(ans[x]))+','+str(int(ans[y]))+')')
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.grid()                              # 加网格线
plt.axis('equal')                       # 让x, y轴距长度一致
plt.show()

运行结果:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
x = 3.00000000000000
y = 1.00000000000000
Traceback (most recent call last):File "C:\Python310\lib\site-packages\matplotlib\cbook\__init__.py", line 287, in processfunc(*args, **kwargs)File "C:\Python310\lib\site-packages\matplotlib\backend_bases.py", line 3279, in <lambda>"close_event", lambda e: manager.destroy())File "C:\Python310\lib\site-packages\matplotlib\backends\_backend_tk.py", line 495, in destroyself._window_dpi.trace_remove('write', self._window_dpi_cbname)File "C:\Python310\lib\tkinter\__init__.py", line 455, in trace_removeself._tk.deletecommand(cbname)
_tkinter.TclError: can't delete Tcl command[Done] exited with code=0 in 18.333 seconds

从联立方程式看机器学习的数学模式相关推荐

  1. 一文掌握机器学习必备数学知识(附学习资源)

    来源:运筹OR帷幄 作者:留德华叫兽&王源 本文共5800字,建议阅读10分钟. 本文划分了ML数学基础的的初.中.高三个阶段并提供针对各阶段的学习资源. 0.前言 本篇文章是由留德华叫兽在知 ...

  2. 机器学习的数学,从入门到不放弃(文末彩蛋)

    文末有活动 似乎每个理科生都在生命的一大段时间中幻想过自己精通各种理论和技术,理科生的装腔相比其他人要硬核得多,说起话来也更加烧脑. 有时他们看到跑车就想聊起涡轮增压发动机马力和排量的关系,看到飞机起 ...

  3. 终结吧!机器学习的数学焦虑_机器人来了!

    终结吧!机器学习的数学焦虑 How to not become part of the planet's largest botnet 如何不成为地球上最大的僵尸网络的一部分 The surge of ...

  4. Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构

    Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构 文章目录 Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构 0x00 摘要 0x01 Alink设计原则 0x02 ...

  5. sklearn快速入门教程:(三)机器学习的通用模式及实现方法

    一.从线性回归总结机器学习的通用模式 从上篇博客我们详细讲述了线性回归的实现方式.线性回归的调用方式实际上是sklearn的典型方式,在掌握这个方法之后我们继续进一步深入,探索其它的模型的使用. 回顾 ...

  6. 《机器学习的数学》出版了,彻底解决程序员学机器学习的数学问题

    如何解决机器学习领域的数学问题,打下坚实的数学基础?是很多初学者乃至进阶者关心的话题.我们把这个问题拆解成下面几个问题: 1. 为什么需要数学? 2. 机器学习中究竟用到了哪些数学知识? 3. 如何掌 ...

  7. 《从零开始:机器学习的数学原理和算法实践》chap1

    <从零开始:机器学习的数学原理和算法实践>chap1 学习笔记 文章目录 <从零开始:机器学习的数学原理和算法实践>chap1 学习笔记 chap1 补基础:不怕学不懂微积分 ...

  8. 机器学习对数学的要求_是对您的机器学习模因进行数学调查

    机器学习对数学的要求 I have taken severe umbrage at a particular machine learning meme that keeps popping up i ...

  9. 社区共享式的机器学习——Medium翻译

    原文OpenML: Machine Learning as a community 由于不能够插入jupyter因此代码都截图展示,但是都贴出了链接可以清晰查看 文章目录 社区共享式的机器学习 Ope ...

最新文章

  1. 为Nginx制作404 403 500等错误页面
  2. php trimmsg,c语言实现php的trim标签
  3. 【Tiny4412】Tiny4412编译和烧写uboot
  4. 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
  5. Redis 安装启动
  6. 原生ajax请求及readyState的几种状态
  7. 编写一个函数,计算下式当n=10和n=100的值。
  8. 技术交流:老刘说NLP技术公众号开通
  9. html之figure元素和figcaption元素为图片声明标题
  10. anaconda python no module named ‘past‘的解决方法
  11. java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
  12. 联想电脑linux显卡驱动,如何安装从联想官网下载的显卡驱动
  13. SWFUpload文件上传
  14. js rsa验签_【HAVENT原创】前端使用 jsrsasign 进行 RSA 加密、解密、签名、验签
  15. 广播发送者广播接收者介绍
  16. python 随机森林分类 DecisionTreeClassifier 随机搜索优化参数 GridSearchCV
  17. Ubuntu系统SSH免密登录,以及SSH免密登录原理
  18. 数学里上凹,下凹,上凸,下凸
  19. 解决Warning: NEWFF used in an obsolete way. See help for NEWFF to update calls to the new argument li
  20. 嵌入式Linux驱动开发常用目录及文件梳理

热门文章

  1. 一次性餐具 disposable dishware
  2. AD19滴泪添加与删除
  3. 编译Android下可用的全平台FFmpeg(包含libx264与libfdk-aac)
  4. English Pod 听力学习之路 C41 - C68
  5. c语言如何多核运行程序,对于多线程程序,单核cpu和多核cpu如何工作?
  6. 2022这一年:阳了、变轨和逆风
  7. HashMap底层原理(图文并茂,简单易懂)
  8. VR全景图片,助力VR全景制作,720全景效果图
  9. 一IT公司hr对软件外包感受(转)
  10. 如何计算根号之牛顿迭代法