鱼C论坛

 找回密码
 立即注册
查看: 4433|回复: 3

[已解决]怎么求两个函数曲线的交点?

[复制链接]
发表于 2020-5-31 23:51:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import numpy as np
import matplotlib.pyplot as plt
import math
x = np.linspace(0,80,50)
y1 = (2*x/(1+x))**0.5-1+1/(x**0.5)*(1-(2/(1+x))**0.5)
y2 = 2**0.5 -1+(1/x**0.5)*(2**0.5-1)

plt.title('Transfer')
plt.xlabel('R')
plt.ylabel('Required V[ /Vi]')
plt.plot(x,y1)
plt.plot(x,y2)

plt.show()
11.jpg
交点的横坐标怎么求T T以及交点的纵坐标,还有交点的话可以在图中标记出来吗?
初学Python,拿来做一个作业,但无奈知识太欠缺,在此先谢过!
最佳答案
2020-6-1 02:32:01
本帖最后由 java2python 于 2020-6-1 02:33 编辑

其实这个问题个人是随意发表意见的,应该也算一种方法
首先解方程肯定是不予考虑的,数学太难了,无非是利用计算机的超强计算力,进行大量循环查找。
所谓交点,会产生位置关系变动(也不能绝对,还有相切的),原先黄线在上,焦点过后,黄线在下,当然一般函数都是连续的。。。
找到了这个区间,比如[10,20]之间发生,在采用两分法,到底是[10,15],还是[15,20]区间,
如此直到区间足够小,双方差距足够小,认为这点就是交点。如果其实区间是[10,20]
采用10次可以精确到0.01
采用20次可以精确到0.00001
采用20次可以精确到0.00000001
...
再下去就小于宇宙中的任何尺寸了,不过数学上的精确是永远无法达到的的,除非这个交点是一个有限小数,连有理数(无限但循环)也搞不定
图中标记就简单了,因为计算机显示器上的图是按像素来的,都是千分之一精度的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-1 02:32:01 | 显示全部楼层    本楼为最佳答案   
本帖最后由 java2python 于 2020-6-1 02:33 编辑

其实这个问题个人是随意发表意见的,应该也算一种方法
首先解方程肯定是不予考虑的,数学太难了,无非是利用计算机的超强计算力,进行大量循环查找。
所谓交点,会产生位置关系变动(也不能绝对,还有相切的),原先黄线在上,焦点过后,黄线在下,当然一般函数都是连续的。。。
找到了这个区间,比如[10,20]之间发生,在采用两分法,到底是[10,15],还是[15,20]区间,
如此直到区间足够小,双方差距足够小,认为这点就是交点。如果其实区间是[10,20]
采用10次可以精确到0.01
采用20次可以精确到0.00001
采用20次可以精确到0.00000001
...
再下去就小于宇宙中的任何尺寸了,不过数学上的精确是永远无法达到的的,除非这个交点是一个有限小数,连有理数(无限但循环)也搞不定
图中标记就简单了,因为计算机显示器上的图是按像素来的,都是千分之一精度的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 15:49:30 | 显示全部楼层
很抱歉,计算机的结果很难达到,为什么这么说,你在python甚至其他的一些语言里面输入 0.1+0.1 结果都是不准确的。
所以我们一般都是手工计算手工添加,或者使用循环无限逼近一个精度极高的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 20:54:07 | 显示全部楼层
大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 07:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表