鱼C论坛

 找回密码
 立即注册
查看: 974|回复: 9

[已解决]求助!一道python的题目

[复制链接]
发表于 2018-4-26 20:01:21 | 显示全部楼层 |阅读模式

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

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

x
QQ截图20180426195958.png
老师的要求如图。
很不能理解拐点要怎么求。。
txt附件
最佳答案
2018-4-27 10:44:03
  1. with open(r"C:\Users\xuj06\Desktop\record_data.txt") as f:
  2.         data = f.readlines()
  3. signal = []
  4. for i in range(len(data)):
  5.         x, y = data[i].trim().split()
  6.         x, y = float(x), float(y)
  7.         if y > 100:
  8.                 x1, y1 = data[i-1].trim().split()
  9.                 x1, y1 = float(x1), float(y1)
  10.                 x2, y2 = data[i+1].trim().split()
  11.                 x2, y2 = float(x2), float(y2)
  12.                 y = y1 + (y2-y1)/(x2-x1)*0.01
  13.         signal.append((x,y))
  14. print('坐标','\t函数值','\t\t拐点左值','\t\t拐点右值')
  15. for i in range(2,len(signal)-1):
  16.         xaa,yaa = signal[i-2]
  17.         xa,ya = signal[i-1]
  18.         x0,y0 = signal[i]
  19.         xb,yb = signal[i+1]
  20.         ffa = (y0+yaa-2*ya)/(0.01*0.01)
  21.         ffb = (yb+ya-2*y0)/(0.01*0.01)
  22.         if ffa*ffb < 0:
  23.                 print(x0,y0,ffa,ffb, sep='\t')
复制代码

Capture.PNG

record_data.txt

18.57 KB, 下载次数: 5

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-26 20:23:28 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-26 23:02:29 | 显示全部楼层
塔利班 发表于 2018-4-26 20:23
https://baike.so.com/doc/953089-1007513.html

我当然知道拐点是什么啊。。问题是在没有函数的情况下要怎么算啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-26 23:05:52 | 显示全部楼层
a654267835ww 发表于 2018-4-26 23:02
我当然知道拐点是什么啊。。问题是在没有函数的情况下要怎么算啊

。。感觉你还是不会算啊,都给你值了还怎么不知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-26 23:13:47 | 显示全部楼层
塔利班 发表于 2018-4-26 23:05
。。感觉你还是不会算啊,都给你值了还怎么不知道

主要是这个h的取值不知道怎么取呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-26 23:24:51 | 显示全部楼层
a654267835ww 发表于 2018-4-26 23:13
主要是这个h的取值不知道怎么取呀

间隔0.01都给你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-27 00:49:24 From FishC Mobile | 显示全部楼层
对于求导来说0.01未免也太大了吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-27 08:12:51 | 显示全部楼层
别凉呀别凉呀别凉呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-27 10:44:03 | 显示全部楼层    本楼为最佳答案   
  1. with open(r"C:\Users\xuj06\Desktop\record_data.txt") as f:
  2.         data = f.readlines()
  3. signal = []
  4. for i in range(len(data)):
  5.         x, y = data[i].trim().split()
  6.         x, y = float(x), float(y)
  7.         if y > 100:
  8.                 x1, y1 = data[i-1].trim().split()
  9.                 x1, y1 = float(x1), float(y1)
  10.                 x2, y2 = data[i+1].trim().split()
  11.                 x2, y2 = float(x2), float(y2)
  12.                 y = y1 + (y2-y1)/(x2-x1)*0.01
  13.         signal.append((x,y))
  14. print('坐标','\t函数值','\t\t拐点左值','\t\t拐点右值')
  15. for i in range(2,len(signal)-1):
  16.         xaa,yaa = signal[i-2]
  17.         xa,ya = signal[i-1]
  18.         x0,y0 = signal[i]
  19.         xb,yb = signal[i+1]
  20.         ffa = (y0+yaa-2*ya)/(0.01*0.01)
  21.         ffb = (yb+ya-2*y0)/(0.01*0.01)
  22.         if ffa*ffb < 0:
  23.                 print(x0,y0,ffa,ffb, sep='\t')
复制代码

Capture.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-27 12:54:26 | 显示全部楼层

哇!谢谢大佬!我仔细看看!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 20:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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