- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用“x”和“z”作为符号时,这段代码没有问题:
from sympy import *
x, z = symbols('x z')
y = -6*x**2 + 2*x*z**0.5 + 50*x - z
solve((diff(y, x), diff(y, z)))
y.subs({x: 5, z: 25})
但是当我使用“q”和“a”时,solve 没有给我任何解决方案。
q, a = symbols('q a')
y = -6*q**2 + 2*q*a**0.5 + 50*q - a
solve((diff(y, q), diff(y, a)))
y.subs({q: 5, a: 25})
如您所见,我使用“subs”来检查目标函数中是否有拼写错误。
更新:我使用“Symbol”单独设置每个变量,但再次使用“q”和“a”不起作用。
# This works
x = Symbol('x')
z = Symbol('z')
y = -6*x**2 + 2*x*z**0.5 + 50*x - z
solve((diff(y, x), diff(y, z)))
# This does not work
q = Symbol('q')
a = Symbol('a')
y = -6*q**2 + 2*q*a**0.5 + 50*q-a
solve((diff(y, q), diff(y, a)))
Cảm ơn.
1 Câu trả lời
知道了!
这完全取决于变量的字母顺序。
如果您在第一个示例中将 x
替换为 z
và sẽ z
替换为 x
它也会停止工作.
内部 solve 将表达式发送到 sympy.solvers
中的函数 _solve
,然后它会尝试求解您的方程,但多次失败。
最后,作为最后的努力,它尝试通过从中选取符号来解决 -sqrt(a) + q
hoặc x - sqrt(z)
一个内部函数 _ok_syms
,带有一个按字母顺序排序的参数(即使没有这个参数它仍然会,但如果用 reversed
包装它神奇地使你的例子完全相反方式)。
因此它确实将 x - sqrt(z)
求解为 x: sqrt(z)
Và -sqrt(a) + q
BẰNG a: q**2
.
虽然在第一种情况下它以易于求解的 50 - 10*sqrt(z)
结束,但在第二种情况下它在 -12*q + 2*sqrt 上丢失(q**2) + 50
因为它无法简化 sqrt(q**2)
.
来源:大量测试: https://github.com/sympy/sympy/blob/master/sympy/solvers/solvers.py
关于Python sympy 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64637807/
Tôi đang xử lý một tập hợp gồm 173 nghìn điểm được dán nhãn thành 160 nhóm. Tôi muốn giảm số lượng nhóm/cụm bằng cách sáp nhập những nhóm/cụm gần nhất (còn 9 hoặc 10 nhóm). Tôi đã tìm kiếm sklearn hoặc các thư viện tương tự nhưng không thành công. Tôi đoán nó chỉ là sự nhóm lại thông qua knn
Tôi có một danh sách phẳng các số được nhóm hợp lý thành các nhóm 3, trong đó mỗi bộ ba là (số, __bỏ qua, cờ[0 hoặc 1]), ví dụ: [7,56,1, 8,0,0, 2,0,0, 6,1,
Tôi đang sử dụng pipenv để quản lý các gói của mình. Tôi muốn viết một tập lệnh python để gọi một tập lệnh python khác sử dụng môi trường ảo (VE) khác. Cách chạy một tập lệnh python bằng VE1 và gọi một tập lệnh khác
Giả sử tôi có một tệp script.py nằm ở đường dẫn = "foo/bar/script.py". Tôi đang tìm cách thực thi các tập lệnh trong Python từ Python chính của tôi
Điều này nghe có vẻ giống như một câu đố hay một trò đùa, nhưng thực ra tôi vẫn chưa tìm ra câu trả lời cho câu hỏi này. Vấn đề thực sự là gì? Tôi muốn chạy 2 tập lệnh. Trong tập lệnh đầu tiên, tôi gọi tập lệnh kia, nhưng tôi muốn chúng tiếp tục song song, chứ không phải thành hai luồng riêng biệt. Chủ yếu là tôi không muốn
Tôi có một phần mềm sử dụng python 2.5.5. Tôi muốn gửi lệnh để bắt đầu một tập lệnh trong python 2.7.5 và sau đó tiếp tục thực thi tập lệnh đó. Tôi đã thử sử dụng #!python2.7.5 và http://re
Tôi đang ở dòng lệnh python (sử dụng python 2.7) và đang cố gắng chạy một tập lệnh Python. Hệ điều hành của tôi là Windows 7. Tôi đã thiết lập thư mục của mình thành thư mục chứa tất cả các tập lệnh của tôi bằng cách sử dụng: os.chdir("
Spoiler: Đã giải quyết một phần (xem phần cuối). Sau đây là một ví dụ mã sử dụng nhúng Python: #include int main(int argc, char** argv) { Py_SetPythonHome
Giả sử tôi có danh sách sau, tương ứng với giá cổ phiếu theo thời gian thực: giá = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] Tôi muốn xác định giá trị tốt nhất tổng thể sau đây
Vì vậy, tôi đang cố gắng thay đổi hình nền của khung này khi một nút radio nào đó được chọn. Khung của tôi nằm bên trong một lớp và chức năng của các nút radio nằm bên ngoài lớp đó. (Để tôi có thể gọi chúng trên tất cả các khung khác.) Vấn đề là bất cứ khi nào tôi chọn một nút radio, tôi nhận được lỗi sau:
Tôi đang cố gắng so sánh một chuỗi với một biểu thức chính quy trong python như sau, #!/usr/bin/env python3 import re str1 = "Expecting property name
Hãy xem xét mô-đun Boost.Python nguyên mẫu sau đây nhập lớp "D" từ một tệp tiêu đề C++ riêng biệt. /* tập tin: a/b.cpp */ BOOST_PYTHON_MODULE(c)
Làm thế nào để viết một chương trình để "xác định số dòng của lệnh gọi hàm?" Mô-đun kiểm tra của Python cung cấp tùy chọn để xác định vị trí số dòng, tuy nhiên, def di(): return inspect.currentframe().f_back.f_l
Tôi đã cài đặt Python 2.7 bằng macports và do biến $PATH của tôi nên đây là những gì tôi nhận được khi nhập $ python. Tuy nhiên, virtualenv sử dụng Python 2.6 theo mặc định, ngoại trừ
Tôi chỉ muốn hỏi làm thế nào để tăng tốc độ tìm kiếm trên python. Tôi có một chuỗi ký tự rất dài, dài 176861 (tức là các ký tự chữ và số có một số ký hiệu) mà tôi đã thử nghiệm cho mục đích nghiên cứu bằng cách sử dụng hàm này: def getExe
list1 = [u'%app%%General%%%Council%', u'%people%', u'%people%%Regional%%%Council%%Mandate%', u'%ppp%%Ge
Câu hỏi này đã có câu trả lời tại đây: Có phải Pythonic sử dụng danh sách hiểu biết chỉ cho các tác dụng phụ không? (7 câu trả lời) Đã đóng 4 tháng trước. kể
Tôi muốn kết hợp hai danh sách thành một danh sách trong Python như sau: a = [1,1,1,2,2,2,3,3,3,3] b = ["Sun", "is", "bright", "June","and" ,"Ju
Tôi đang chạy Mac OS X 10.8.4 (Darwin 12.4.0) với bản phân phối Boost mới nhất (1.55.0). Tôi đang làm theo hướng dẫn ở đây để xây dựng hướng dẫn Boost-Pyth có trong bản phân phối của tôi
Tôi đang học Python và đang cố gắng tạo một trình thu thập dữ liệu web mà không cần bất kỳ thư viện của bên thứ 3 nào nên quy trình không được đơn giản hóa đối với tôi và tôi biết mình đang làm gì. Tôi đã tìm kiếm một số tài liệu trực tuyến nhưng tất cả đều khiến tôi bối rối về một điều gì đó. html trông giống như
Tôi là một lập trình viên xuất sắc, rất giỏi!