在MATLAB,Maple或Mathematica中是否有这样做的包?
matlab wolfram-mathematica matrix maple matrix-multiplication
我用蒙特卡罗方法"找到Pi",但答案是错误的.原始代码是:
RandomTools[MersenneTwister]: with(Statistics):
tries := 10000:
s := 0;
for i to tries do
if GenerateFloat()^2+GenerateFloat()^2 < 1 then s := s+1 end if;
end do:
evalf(4*s/tries)
Run Code Online (Sandbox Code Playgroud)
它给出了2.8-2.85的答案
当我将代码更改为
s := 0;
x := Array([seq(GenerateFloat(), i = 1 .. tries)]);
y := Array([seq(GenerateFloat(), i = 1 .. tries)]);
for i to tries do
if x[i]^2+y[i]^2 < 1 then s := s+1 end if;
end do:
evalf(4*s/tries)
Run Code Online (Sandbox Code Playgroud)
那么答案是对的.我不知道为什么我不能在"for"循环中生成数字.
我已经发现它的意思是相同的,但方差是不同的.对于:
tries := 100000;
A := Array([seq(GenerateFloat(), i = 1 .. 2*tries)]);
s1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Maple中执行以下积分:
simplify(int(a*x^2*e^(-a*x^2), x = -infinity .. infinity))
Run Code Online (Sandbox Code Playgroud)
但是Maple只返回整数语句本身而不是返回答案:
int(a*x^2*e^(-a*x^2), x = -infinity .. infinity)
Run Code Online (Sandbox Code Playgroud)
虽然在更漂亮的形式(与实际的积分符号等).我已经尝试删除"简化()"但它没有任何区别.
知道为什么会这样吗?它应该返回一个值.
任何用于计算Mathematica或Maple中的分数导数的内置函数?
它用于推导的方法是什么?
非常感谢!
我正在学习单精度和双精度的机器epsilon,并比较不同程序的值.例如,在matlab中使用以下代码:
>> format long
>> eps
Run Code Online (Sandbox Code Playgroud)
给出2.220446049250313e-16.但是Maple中的以下代码:
> readlib(Maple_floats);
> evalhf(DBL_EPSILON);
> quit;
Run Code Online (Sandbox Code Playgroud)
给出-15 .2220446049250314 10(其中-15是指数).
两个程序之间的输出略有不同.Maple似乎从3到4向上舍入.这种差异的原因是什么?
我有一些微分方程式,我想为各种起始值绘制解决方案 N_0
这是方程式:
dN\dt= bN^2 - aN
dN\dt = bN^2 (1 - N\K) - aN
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
我真的不关心使用的语言.在专用数学方面,我的计算机上有mathematica和matlab.我有机会接触到枫树.我必须做更多这方面的事情,我想要有任何语言的例子,因为它会帮助我弄清楚我想要使用哪一个并学习它.
我有一个已经简化为形式的方程
eqn1 := f(x,y,z) = T;
Run Code Online (Sandbox Code Playgroud)
现在我有另一个涉及 T 作为变量的方程
eqn2 := g(T,x,y,z);
Run Code Online (Sandbox Code Playgroud)
我想T用f(x)in替换eqn2。如果我eqn1在表格中
eqn1better := T = f(x,y,z);
Run Code Online (Sandbox Code Playgroud)
然后下面的命令会做我想要的。
algsubs(eqn1better, eqn2);
Run Code Online (Sandbox Code Playgroud)
那么如何将等式的左侧和右侧交换eqn1成eqn1better?
我想写一下Maple Taylor系列中的cosinus函数.这是我的代码:
better_cos := proc (x) options operator, arrow; sum((-1)^n*x^(2*n)/factorial(2*n), n = 0 .. 20) end proc;
Run Code Online (Sandbox Code Playgroud)
better_cos(0)返回0而不是1(cos(0)== 1).这可能是因为x ^(2*n)总是返回0而不是1.例如:
fun_sum := proc (x) options operator, arrow; sum(x^(2*n), n = 0 .. 0) end proc
Run Code Online (Sandbox Code Playgroud)
对于x == 1,返回0.
这很奇怪,因为0 ^ 0返回1.你有什么想法我怎样才能正确实现cosinus的泰勒系列?