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}}]图像出来是空的,而
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/11 03:40:06
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}}]图像出来是空的,而
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]能正常的输出一个解析的实数答案.
如何成功做出这个函数图像并且求出局部最小值呢?求教!
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[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_ 那样完全屏蔽符号计算再适当降低求解精度也是可以的.
x[t_, b1_, b2_] := 2 t + 1 + b1*Sin[Pi*t] + b2*Sin[2*Pi*t];
s[b1_?NumericQ, b2_?NumericQ] :=
NIntegrate[
1/2*(D[x[t, b1, b2], t])^2 - 1/2*2*x[t, b1, b2]^2, {t, 0...
全部展开
x[t_, b1_, b2_] := 2 t + 1 + b1*Sin[Pi*t] + b2*Sin[2*Pi*t]; FindMinimum[s[b1, b2], {{b1, 0}, {b2, 0}}]
s[b1_?NumericQ, b2_?NumericQ] :=
NIntegrate[
1/2*(D[x[t, b1, b2], t])^2 - 1/2*2*x[t, b1, b2]^2, {t, 0, 1},
PrecisionGoal -> 5, AccuracyGoal -> 3,
Method -> {"LocalAdaptive", "SymbolicProcessing" -> 0}];
Plot3D[s[b1, b2], {b1, -1, 2}, {b2, -1, 1}, MaxRecursion -> 0,
PlotPoints -> 15, AxesLabel -> Automatic]
收起