- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从一个简单的千里马问题开始,这个问题的答案可能会为我正在解决的实际问题提供答案。
相关的简单问题:
我怎样才能得到最大值来计算:
bfloat((1+%i)^0.3);
可能有一个可以设置的选项变量,以便它的计算结果为复数?
实际问题:
在评估有限元方法的数值时间积分的近似值时,为此我使用了谱分析,这需要计算 4 x 4 矩阵的特征值。该矩阵“cav”也在最大值内计算,使用最大值的一些代数功能,但使用数值,因此该矩阵完全是数字的,即不包含变量。我用 Mathematica 计算了特征值,它返回 4 个实特征值。然而,Maxima 为这种情况计算了极其复杂的表达式,显然它不“知道”如何简化,甚至在数字上也称为“bigfloat”。也许这个问题的出现是因为 Maxima 首先通过有理数(即分数)近似矩阵“cac”,然后尝试完全准确地解决问题,而不是简单地使用数值“bigfloat”计算。我有办法改变这个吗?
请注意,如果您只将 gzv 的输入值更改为 0.5,则它可以正常工作,并返回复数特征值的数值。
我包括下面的代码。请注意,直到“cav:subst(vs,ca)$”为止的所有代码仅用于矩阵 cav 的定义,并且似乎工作正常。在此后的少数语句中,它无法计算特征值的数值。
v1:v0+ (1-gg)*a0+gg*a1$
d1:d0+v0+(1/2-gb)*a0+gb*a1$
obf:a1+(1+ga)*(w^2*d1 + 2*gz*w*(d1-d0)) -
ga *(w^2*d0 + 2*gz*w*(d0-g0))$
obf:expand(obf)$
cd:subst([a1=1,d0=0,v0=0,a0=0,g0=0],obf)$
fd:subst([a1=0,d0=1,v0=0,a0=0,g0=0],obf)$
fv:subst([a1=0,d0=0,v0=1,a0=0,g0=0],obf)$
fa:subst([a1=0,d0=0,v0=0,a0=1,g0=0],obf)$
fg:subst([a1=0,d0=0,v0=0,a0=0,g0=1],obf)$
f:[fd,fv,fa,fg]$
cad1:expand(cd*[1,1,1/2-gb,0] - gb*f)$
cad2:expand(cd*[0,1,1-gg,0] - gg*f)$
cad3:expand(-f)$
cad4:[cd,0,0,0]$
cad:matrix(cad1,cad2,cad3,cad4)$
gav:-0.05$
ggv:1/2-gav$
gbv:(ggv+1/2)^2/4$
gzv:1.1$
dt:0.01$
wv:bfloat(dt*2*%pi)$
vs:[ga=gav,gg=ggv,gb=gbv,gz=gzv,w=wv]$
cav:subst(vs,ca)$
cav:bfloat(cav)$
evam:eigenvalues(cav)$
evam:bfloat(evam)$
eva:evam[1]$
最佳答案
这里的主要问题是 Maxima 非常努力地使计算精确,并且很难告诉它放松并允许不精确的结果。
您上面发布的代码中是否有错误?您有 cav:subst(vs,ca)
但是 ca
没有定义。那应该是 cav:subst(vs,cad)
?
对于短问题,通常是rectform
可以将复杂的表达式简化为更有用的东西:
(%i58) rectform (bfloat((1+%i)^0.3));
`rat' replaced 1.0B0 by 1/1 = 1.0B0
(%o58) 2.59023849130283b-1 %i + 1.078911979230303b0
dgeev
计算特征值和/或特征向量。
(%i51) load (lapack);
<bunch of messages here>
(%o51) /usr/share/maxima/5.39.0/share/lapack/lapack.mac
(%i52) dgeev (cav);
(%o52) [[- 0.02759949957202372, 0.06804641655485913, 0.997993508502892, 0.928429191717788], false, false]
关于maxima - Maxima 中数值表达式的非评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41822903/
如何在 Maxima 中展平由其他矩阵组成的矩阵? 我的意思是,如果我将一个矩阵作为新矩阵中的一个元素,我将无法直接访问底层元素。外矩阵的维度不变! 最佳答案 尝试函数 mat_unblocker。
我从一个简单的千里马问题开始,这个问题的答案可能会为我正在解决的实际问题提供答案。 相关的简单问题: 我怎样才能得到最大值来计算: bfloat((1+%i)^0.3); 可能有一个可以设置的选项变量
我想在 Maxima 中计算 tan(x) 在 x=pi/4 处的七阶导数: f(x) := diff(tan(x), x, 7); f(%pi / 4); 但是我无法得到结果。有什么想法吗? 最佳答
我想在 Maxima 中堆叠矩阵的列。 示例 b3: matrix( [1,0,0], [-a21,1,0], [-a31,-a32,1] ); 我想知道如何堆叠这个矩阵的列。提前感谢您的帮助和
有一个功能 (x-1)/log(x) 很明显,图形应该从 x>0 开始显示。但是,Maxima 也显示在 x<0 上。 最佳答案 我猜你一定是在打电话 draw2d或 wxdraw2d . (发布您正
对于有拉格朗日乘数的问题,您可以求解临界点。通常,您会得到一组关键点。有没有一种方法可以轻松地将原始函数映射到解决方案上以评估/应用这些解决方案的函数以获得函数值? 这是一些代码,最后一步是我无法弄清
我对 maxima 还比较陌生。我想知道如何使用 maxima 将数组写入文本文件。 最佳答案 我知道原来的帖子已经晚了,但我会将其留在这里,以防有人在搜索中找到它。 设 A 为 Lisp 数组、Ma
我试图在 Maxima 中解决分段函数,但没有返回任何函数的解决方案: piecewiseExample(x) := if (x =5)]] $ /* solve every `eq' and fil
对我来说,这个比较的运行时间:1`g block([ff%2 : ev(ff%, args(known_unit_conversions), infeval)], if ff%2 # ff% the
我正在使用 xmaxima 使用“求解”命令求解两个联立非线性方程。显示的答案是 x=[ans1, ans2,..], y=[ans1,ans2,...], 但是它被存储到变量 'x' 和 'y' 中
我想创建一个函数,如果一个系列发散到无穷大,它会精确地返回 true。 不幸的是,如果一个系列出现分歧,Maxima 似乎会抛出一个错误。我加载了包 simplify_sum,我希望 simplify
我有点困惑;我注意到如果我这样做: a[sqrt(2)] : 1; arrays; 我会得到: [a] 所以 a 是 Maxima 的数组……而 sqrt(2) 是一个无理数。 我曾经将数组视为按索引
我在 tomcat 服务器上运行了 maxima,我使用 php 访问它。 在我的网站上,用户能够执行使用 php 发送到我的 tomcat 服务器的 maxima 命令。 但是,这给我留下了确保
在 Maxima 中,我可以使用“rootscontract”来组合具有相同有理数的乘数: (%i1) x^(1/2) * y^(1/2), rootscontract; (%o1) sqrt(x*y
我想在 wxMaxima 中求解以下方程: k*A*((T_2-T_1)/L)=ε*σ*A*(T_1^4-T_a^4) 对于 T_1。问题是,使用常规 Solve 和 Solve_to_poly 我会
我想制作一个小型“库”以供我 future 的 maxima 脚本使用,但我不太确定如何继续(我使用 wxMaxima)。 Maxima 的文档涵盖了 save() , load()和 loadFil
我有一个复杂的问题已经解决了。现在我很想自动化它。在这样做时,我确实解决了矩阵中的一个位置。这个职位确实包含一个变量。我想通过它在矩阵中的位置为这个变量赋值。这是我想要做的一个简单的例子: (
我有以下最大值代码: declare(p, real)$ declare(q, real)$ declare(m, real)$ is(-(4*p^2*q^2)/m^2-(4*p^4)/m^2 0,
当我使用 千里马 计算泰勒级数: f(x,y) := taylor((x+y)^3, [x, y], [2, 3], 2); f(2,3); /* error: wrong number of ar
我正在使用 maxima 软件来帮助我简化公式。通常,我可以使用 subst、ratsubst、factor、ratsimp 轻松管理……但是我发现仍然有一些公式很难以我想要的方式简化。 假设 a >
我是一名优秀的程序员,十分优秀!