博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用matlab和python实现符号运算
阅读量:6514 次
发布时间:2019-06-24

本文共 1075 字,大约阅读时间需要 3 分钟。

  hot3.png

 

前言

在matlab中可以使用syms定义符号变量方便数学公式推导;在python中也有类似的功能,SymPy是Python强大的数学符号计算库。

在下面的例子中,我们定义函数

MATLAB符号变量

>> syms x y;  % 定义符号变量>> f = x^2 + 2*y;>> f f = x^2 + 2*y

分别对xy 求导

>> diff(f, x) ans = 2*x >> diff(f, y) ans = 2

具体值赋予指定变量时

>> subs(f, {x, y}, {2, 1}) ans = 6 >> subs(f, {x}, {3}) ans = 2*y + 9 >>

求函数,例如对求极值点时非常有用

>> f = x + 1 f = x + 1 >> solve(f, x) ans = -1

Python符号变量

>>> from sympy import *>>> x, y = symbols('x y')>>> f = x**2 + 2*y>>> print fx**2 + 2*y

分别对xy 求导

>>> print diff(f, x)2*x>>> print diff(f, y)2

具体值赋予指定变量时

>>> print f.evalf(subs = {x:2, y:1})  # 求表达式的浮点数-evalf()函数6.00000000000000>>> print f.subs({x:2, y:1})6>>> print f.subs(x, 3)2*y + 9

同样,求解函数时的x

>>> f = x + 1>>> print fx + 1>>> print solve(f, x)[-1]

一个例子

from sympy import *apples = []letters = [chr(i) for i in range(97,123)]str = ''for i in range(0,4):    apples.append(symbols(letters[i]))func = 0for i in range(0, 4):    for j in range(0, 4):        if i != j:            func = func + apples[i] * apples[j]func = func / 2print func

 

Reference

 

转载于:https://my.oschina.net/keyven/blog/818412

你可能感兴趣的文章
Dart的数据库操作
查看>>
Codeforces 591 B Rebranding【Codeforces Round #327 (Div. 2)】
查看>>
命名难,难于上青天
查看>>
APUE读书笔记-05标准输入输出库(7)
查看>>
23 第一周作业
查看>>
DNS解析偶尔延迟
查看>>
iOS打电话,发短信,发邮件,打开网址
查看>>
06-验证码-基本功能实现
查看>>
Java数据结构与算法(六) 希尔排序
查看>>
canvas学习笔记
查看>>
elasticsearch安装步骤
查看>>
PHP获取Cookie模拟登录CURL(转)
查看>>
PHP-权限控制类(转)
查看>>
CSS3秘笈第三版涵盖HTML5学习笔记9~12章
查看>>
bzoj1044木棍分割
查看>>
leetcode-136-Single Number
查看>>
http服务器小项目
查看>>
一些数学上的名词及操作
查看>>
《Spring1之第十次站立会议》
查看>>
Unity Shader 噪声消融特效 - 剑灵死亡特效
查看>>