首页 > 编程问答 >sympy 的简化是否可用于未知函数?

sympy 的简化是否可用于未知函数?

时间:2024-07-23 03:56:53浏览次数:8  
标签:python sympy simplify

以下代码意外地将 f(1)=xf(0) 简化为 f(1)=0。是因为没有进一步假设就不能使用未定义的函数吗?

运行此命令不应更改表达式,但它会给出 Eq(f(1), 0)

from sympy import *

x, y = symbols("x y")
f = Function("f")
print(Eq(f(1), x * f(0)).simplify(rational=True, doit=False))

你是对的,sympy 在简化涉及未知函数的表达式时存在局限性。 问题在于 sympy 假定任何未定义的函数在 0 处的值为 0。 这种假设在一般情况下是不正确的,并且会导致你的示例中出现意外的简化。

以下是代码中发生的事情的细分:

  1. f = Function("f") 创建一个名为 f 的未定义函数。
  2. Eq(f(1), x*f(0)) 创建了一个方程式,表示 f(1) 等于 x 乘以 f(0)
  3. 当你调用 .simplify() 时,sympy 会(错误地)假设 f(0) = 0
  4. 此假设会导致方程式简化为 f(1) = x * 0 ,进而简化为 f(1) = 0

为了避免这个问题,你需要避免依赖 sympy 对未定义函数的假设。

以下是一些可供选择的方法:

  • f(0) 替换为符号: 这将阻止 sympy 对其值做出任何假设。

    ```python from sympy import *

    x, y = symbols("x y") f = Function("f") f0 = symbols("f0") # 引入一个符号来表示 f(0) print(Eq(f(1), x * f0).simplify(rational=True, doit=False)) ```

    这将输出预期的结果: Eq(f(1), f0*x)

  • 避免使用 .simplify() 如果你不需要进行其他简化,则可以完全省略此步骤。

虽然 sympy 对此类情况的处理方式有限制,但你可以通过理解其假设并使用适当的解决方法来获得所需的结果。

标签:python,sympy,simplify
From: 78779780

相关文章

  • 如何在Python中使用Selenium提取data-v-xxx?
    因为我想查看每个class='num'内的文本是否大于0。如果测试通过,那么我需要获取venuen-name内的文本。我观察到,data-v是相同的。所以我的方法是获取相同的data-v-<hashvalue>来查找场地名称。我尝试了不同的方法来提取,但仍然无法提取。有什么建议吗?这是DOM<div......
  • Python:添加异常上下文
    假设我想提出一个异常并提供额外的处理信息;最好的做法是什么?我想出了以下方法,但对我来说有点可疑:definternal_function():raiseValueError("smellysocks!")defcontext_function():try:internal_function()exceptExceptionase:......
  • 【视频】Python遗传算法GA优化SVR、ANFIS预测证券指数ISE数据-CSDN博客
    全文链接:https://tecdat.cn/?p=37060本文旨在通过应用多种机器学习技术,对交易所的历史数据进行深入分析和预测。我们帮助客户使用了遗传算法GA优化的支持向量回归(SVR)、自适应神经模糊推理系统(ANFIS)等方法,对数据进行了特征选择、数据预处理、模型训练与评估。实验结果表明,这些方法......
  • Python学习笔记42:游戏篇之外星人入侵(三)
    前言在之前我们已经创建好了目录,并且编写好了游戏入口的模块。今天的内容主要是讲讲需求的分析以及项目各模块的代码初步编写。在正式编写代码前,碎碎念几句。在正式编写一个项目代码之前,实际是有很多工作要做的。就项目而言,简单的定项,需求对齐,项目架构设计,实际的代码编写,......
  • Python入门知识点 5--流程控制语句
    先来分享一个pycharm使用小技巧   红色波浪线:提醒可能报错   黄色波浪线:提醒书写不规范,ctrl+alt+l去掉黄线   code--Reformatcode,就可以去掉黄线,调整代码格式1、程序三大执行流程(1)顺序执行        程序执行时,代码从上往下,从左往右执行,中间......
  • python里读写excel等数据文件的几种常用方式
    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv、txt等)、excel文件、数据库文件、api等。下面整理下python有哪些方式可以读取数据文件。1.python内置方法(read、readline、readlines)read():一次性读取整个文件内容。推荐使用read(size)方法,size越大......
  • python+flask计算机毕业设计鲜花坊销售平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,线上购物已成为人们日常生活的重要组成部分,尤其在追求生活品质与个性化的今天,传统鲜花销售行业正经历着深刻的变革......
  • python+flask计算机毕业设计快递驿站管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,快递行业迎来了前所未有的繁荣期,快递包裹量急剧增长,对快递末端配送服务提出了更高的要求。传统的快递配送模式面临......
  • python-爬虫实例(4):获取b站的章若楠的视频
    目录前言        道路千万条,安全第一条        爬虫不谨慎,亲人两行泪获取b站的章若楠的视频一、话不多说,先上代码二、爬虫四步走1.UA伪装2.获取url3.发送请求 4.获取响应数据进行解析并保存 总结前言        道路千万条,安全第一条......
  • 使用Python和Pygame创建简单的音乐播放器
    在本篇博客中,我们将探讨如何使用Python编写一个简单的音乐播放器,并通过Pygame库实现音乐的播放和控制。我们将逐步介绍代码的功能和实现原理,以便读者能够了解每个部分的作用和如何在自己的项目中应用类似的技术。介绍音乐播放器是日常生活中常见的应用程序之一,它允许我们播放......