作业帮 > 数学 > 作业

Mathematica求极值与3D作图

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/09 20:51:36
Mathematica求极值与3D作图
x[t_,b1_,b2_] := 2 t + 1 + b1*Sin[Pi*t] + b2*Sin[2*Pi*t];
S[b1_,b2_] :=
Integrate[1/2*(D[x[t,b1,b2],t])^2 - 1/2*2*x[t,b1,b2]^2,{t,0,1}];
Plot3D[S,{b1,-1,1},{b2,-1,1}]
FindMinimum[S,{{b1,0},{b2,0}}]
图像出来是空的,而且求最小值时说进入了复数域.但是我求
S[1,1]能正常的输出一个解析的实数答案.
如何成功做出这个函数图像并且求出局部最小值呢?求教!
是S[b1, b2]而不是S,还有,这种毫无必要的延迟赋值也大幅拖慢了求解速度.这样:
x[t_, b1_, b2_] = 2 t + 1 + b1*Sin[Pi*t] + b2*Sin[2*Pi*t];
S[b1_, b2_] = Integrate[1/2*(D[x[t, b1, b2], t])^2 - 1/2*2*x[t, b1, b2]^2, {t, 0, 1}]
Plot3D[S[b1, b2], {b1, -1, 1}, {b2, -1, 1}]
FindMinimum[S[b1, b2], {{b1, 0}, {b2, 0}}]
当然了,像 z_g_j_ 那样完全屏蔽符号计算再适当降低求解精度也是可以的.
再问: 可否请您提提意见,告知一下怎么加快求解速度,请您多告知几个例子。 我曾遇到这样的麻烦,我用命令N[,WorkingPrecision->5],它老是报错。
再答: ……要多看看帮助。N的精度设定的语法不是这样的。正确的应该是 N[, 5] 加快求解速度没有一概而论的方法,我也不算十分擅长,恕我无从帮助。
再问: Clear["Global`*"]; f[x_] := (-2 - Sin[x])/(x^2 + 6 x + 3); d = NestList[f, -6, 14]; N[d, 5] 在这个例子中,我希望通过迭代找到不动点。可以请您看看如何加快求解速度吗?
再答: 很简单,把迭代初始值的整数6改为机械精度数6. : Clear["Global`*"]; f[x_] := (-2 - Sin[x])/(x^2 + 6 x + 3); d = NestList[f, -6., 14] MachinePrecision的数值计算通常会远快于有理数的准确计算。