栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

小福利,如何用python解方程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小福利,如何用python解方程

小福利,如何用python解方程
对于一个普通二元一次方程,很简单,比如a+b=1,直接令b=1-a,画一个直线图就解决了。
对于两个三元一次方程,如何解决呢,因为如果要求的唯一解,必须要有三个三元一次方程才能够完全消元。那么我们退而求其次,看看在满足两个三元一次方程的前提下,是否能够找到满足方程的解呢。
题设,a+b+c=1,abc=1,求得a,b,c解?当消去c,那么只剩下a和b的一个关系式,能否将a和b分开呢?
消去c得到,a+b+1/ab=1
假设想通过python编程求出所有的a,b值

import numpy as np
import random

# data = (
#     np.random.normal(size=(100, 3)) *
#     np.array([[0.1, 0.1, 0.1]]) +
#     np.array([[40, 116.5, 1]])
# ).tolist()
# # print(data[:20])
# print(np.random.normal(size=(100, 3)))
i=0
while True:
    a=float(f'{random.random()*10000:.10f}')
    b=float(f'{random.random()*10000:.10f}')
    c1=-1/(a*b)
    c2=1-a-b

    if c1==c2:
        print(c1,c2)
        break
    i+=1
    print('这是第',i,'次运算')


但是很遗憾,计算机计算了两千万次也没有给出值,原因在于在给a和b赋值的时候,你无法给出逼近真实值的范围值,计算机其实是个很聪明也很笨的东西。

那么通过分析论证,a和b只可能是一正一负两个值(分析过程省略,具体用到了平方和不等式论证法),因此令a=-1,求得此时b=√(2)+1约等于2.41,c等于1-√(2)约等于-0.41,那么验证下a+b+c=1,abc=1是成立的,也就是找到了这样一个解。这样的解也是有无数多个。
根据数形结合的思想,其实令c1=1/ab,c2=1-a-b,当c1=c2也就是两个曲面相交时的所有的a和b的值。
我们完全可以通过三维画图软件matlib,分别画出这两个曲面,然后求出两个曲面相交时所有的a b值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870024.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号