当x=1时,如何使用Z3RCF-Py证明diff(x^2,x)=2?

当x=1时,如何使用Z3RCF-Py证明diff(x^2,x)=2?,z3,Z3,我正在使用以下代码: eps = MkInfinitesimal() print(( (1 + eps)**2- 1**2)/eps < 2.00000000001) print(( (1 + eps)**2- 1**2)/eps > 2) 另一个例子:证明当x=pi时diff(x^2,x)=2*pi,当x=e时diff(x^2,x)=2*e 代码: 另一个例子:当x=e或x=pi时,证明diff(x^3,x)=3*x^2 代码: 其他例子: 代码: [x] = MkRoots([

我正在使用以下代码:

eps = MkInfinitesimal()
print(( (1 + eps)**2- 1**2)/eps < 2.00000000001)
print(( (1 + eps)**2- 1**2)/eps > 2)
另一个例子:证明当x=pi时diff(x^2,x)=2*pi,当x=e时diff(x^2,x)=2*e

代码:

另一个例子:当x=e或x=pi时,证明diff(x^3,x)=3*x^2

代码:

其他例子:

代码:

[x] = MkRoots([-1, -1, 0, 0, 0, 1])
[y] = MkRoots([-197, 3131, -31*x**2, 0, 0, 0, 0, x])
[z] = MkRoots([-735*x*y, 7*y**2, -1231*x**3, 0, 0, y])
print(x.decimal(10))
print(y.decimal(10))
print(z.decimal(10))
eps1 = MkInfinitesimal()
eps2 = MkInfinitesimal() # eps2 is infinitely smaller thant eps1
print(( (x + eps2)**2- x**2)/eps2 < 2*x + eps1)
print(( (x + eps2)**2- x**2)/eps2 > 2*x)
print(( (y + eps2)**2- y**2)/eps2 < 2*y + eps1)
print(( (y + eps2)**2- y**2)/eps2 > 2*y)
print(( (z + eps2)**2- z**2)/eps2 < 2*z + eps1)
print(( (z + eps2)**2- z**2)/eps2 > 2*z)
这个证据正确吗?如果你知道更好的证据,请告诉我。非常感谢。

这是一个很好的例子。 Z3RCF API将在Z3Py的下一个正式版本中提供

顺便说一句,您可以在Z3RCF中创建许多无穷小。 每一个都比先前创建的要小得多。这里是相同的示例,但它通过使用两个不同的无穷小(也可用)避免了
2.0000000001

eps1=mkinfiniteminimal()
eps2=mkinfinitesmimal()#eps2比t eps1无穷小
打印((1+eps2)**2-1**2)/eps2<2+eps1)
打印(((1+eps2)**2-1**2)/eps2>2)

这是正确的。您正在检查:((1+esp)**2-1)/eps=(2*eps+eps**2)/eps=2+eps,这与任何eps的2不同!=因此,如果eps>0,则第二个结果成立。由于eps是一个无穷小,它小于2以上的任何有限精度数字。
eps1 = MkInfinitesimal()
eps2 = MkInfinitesimal() # eps2 is infinitely smaller thant eps1
pi = Pi()
e = E()
print(( (pi + eps2)**2- pi**2)/eps2 < 2*pi + eps1)
print(( (pi + eps2)**2- pi**2)/eps2 > 2*pi)
print(( (e + eps2)**2- e**2)/eps2 < 2*e + eps1)
print(( (e + eps2)**2- e**2)/eps2 > 2*e)
True
True
True
True
eps1 = MkInfinitesimal()
eps2 = MkInfinitesimal() # eps2 is infinitely smaller thant eps1
pi = Pi()
e = E()
print(( (pi + eps2)**3- pi**3)/eps2 < 3*pi**2 + eps1)
print(( (pi + eps2)**3- pi**3)/eps2 > 3*pi**2)
print(( (e + eps2)**3- e**3)/eps2 < 3*e**2 + eps1)
print(( (e + eps2)**3- e**3)/eps2 > 3*e**2)
True
True
True
True
[x] = MkRoots([-1, -1, 0, 0, 0, 1])
[y] = MkRoots([-197, 3131, -31*x**2, 0, 0, 0, 0, x])
[z] = MkRoots([-735*x*y, 7*y**2, -1231*x**3, 0, 0, y])
print(x.decimal(10))
print(y.decimal(10))
print(z.decimal(10))
eps1 = MkInfinitesimal()
eps2 = MkInfinitesimal() # eps2 is infinitely smaller thant eps1
print(( (x + eps2)**2- x**2)/eps2 < 2*x + eps1)
print(( (x + eps2)**2- x**2)/eps2 > 2*x)
print(( (y + eps2)**2- y**2)/eps2 < 2*y + eps1)
print(( (y + eps2)**2- y**2)/eps2 > 2*y)
print(( (z + eps2)**2- z**2)/eps2 < 2*z + eps1)
print(( (z + eps2)**2- z**2)/eps2 > 2*z)
1.1673039782?
0.0629726948?
31.4453571397?
True
True
True
True
True
True