急救,急救,mathematica 一元函数求极值
急救,急救,我有一个关于一元函数求极值的题目,要是解答不出来我就完了.
题目是这样的:一元函数求极值的问题:请设计一个程序包求一元函数在[a,b]上最大值和最小值.要求运行时只要用户任意输入一个一元函数和连续区间[a,b],就计算并告知用户该函数在[a,b]上取最大值和最小值的点和相应的最大值和最小值.
我的程序是:
BeginPackage["jizhi`"]
jizhi::uasage = "jizhi is a programme for making MAX and MIN in a hanshu if \
user input a f(x) and geting a exact (x,f(x))"
Begin["`Private`"]
Module[{a,b,x},
f[x_] := Input[ Inputhanshu];
a = Input[please Input zuoduandian];
b = Input[please Input youduandian];
zhudian = Solve[f[x] == 0,x];
zhudianbiao = Union[{x,f[x]} /.zhudian,{{a,f(a)},{b,f(b)}}];
fmax = Max[Transpose[zhudianbiao][[2]]];
fmin = Min[Transpose[zhudianbiao][[2]]];
x1 = Position[zhudianbiao,fmin];
x2 = Position[zhudianbiao,fmax];
Min = zhudianbiao[[x1[[1,1]]]];
Max = zhudianbiao[[x2[[1,1]]]];]
End[]
EndPackage[]
请指点下为什么运行不对呢?
若解答正确,小女子感恩不尽.
非常感谢你能抽时间帮我看,但是我用你修改的程序运行了一遍,还是不对啊?
你修改后的程序是
BeginPackage["jizhi`"]
jizhi::uasage = "jizhi is a programme for making MAX and MIN in a hanshu if \
user input a f(x) and geting a exact (x,f(x))"
Begin["`Private`"]
Module[{a,b,x},f = Input[Inputhanshu];
fff[x_] := f
a = Input[please Input zuoduandian];
b = Input[please Input youduandian];
zhudian = Solve[fff[x] == 0,x];
zhudianbiao = Union[{x,fff[x]} /.zhudian,{{a,fff[a]},{b,fff[b]}}];
fmax = Max[Transpose[zhudianbiao][[2]]];
fmin = Min[Transpose[zhudianbiao][[2]]];
x1 = Position[zhudianbiao,fmin];
x2 = Position[zhudianbiao,fmax];
Min1 = zhudianbiao[[x1[[1,1]]]];
Max1 = zhudianbiao[[x2[[1,1]]]];
{Min1,Max1}]
End[]
EndPackage[]
再帮我看看吧~我用的是4.0
人气:324 ℃ 时间:2020-06-02 17:51:07
解答
在外面定义若干函数,例如
fg[x_] := 3x + 1
模块修改如下:
Module[{a,b,x},fff = Input[Inputhanshu];
a = Input[please Input zuoduandian];
b = Input[please Input youduandian];
zhudian = Solve[fff[x] == 0,x];
zhudianbiao = Union[{x,fff[x]} /.zhudian,{{a,fff[a]},{b,fff[b]}}];
fmax = Max[Transpose[zhudianbiao][[2]]];
fmin = Min[Transpose[zhudianbiao][[2]]];
x1 = Position[zhudianbiao,fmin];
x2 = Position[zhudianbiao,fmax];
Min1 = zhudianbiao[[x1[[1,1]]]];
Max1 = zhudianbiao[[x2[[1,1]]]];
{Min1,Max1}]
出现Input[Inputhanshu]的时候,只是输入函数名,例如上面定义的 fg ,而不是输入函数表达式
另外Min不能用,它是内部函数,我把它改成 Max1、Min1
还有,你没有求极值,是求了函数的零点,你的zhudianbiao包括端点值和零点值,这个我没有改
再就是,你是不是要输出Min1,我把它写上了,就是{Min1,Max1}
最后,最大最小值Mathematica5.1中分别用用
Maximize[{(1-x^2)^2,x>=-2,x=-2,x4}}
Out[78]=
{0,{x->-1}}
实现,用这个产生你的zhudianbiao吧!
补充
如果一定要在Input[Inputhanshu]输入函数式的话,那么应将
f[x_] := Input[ Inputhanshu]
修改为
f = Input[ Inputhanshu]
fff[x_] := f
另外你在是用Module[]的时候是立即执行的,如果想定义成软件包的话应该这样
f[x_]:=Module[.]
只有这样,在调入软件包的时候,才不至于立即出现输入窗口.只有在输入并执行f[x]的时候出现输入窗口(Input[Inputhanshu])才对.
推荐
- 急救:mathematica 一元函数求极值
- 将一元函数的极值的必要条件与充分条件推广到多元函数的情形
- 一元三次函数有极值的充要条件
- 一元函数中,极值点,拐点,驻点,之间的关系?
- 求解一元函数y=f(x)的极值步骤
- 1.有一只玻璃瓶,它的质量为0.1kg,当瓶内装满水时,瓶和水的总质量为0.4kg,用此瓶装金属颗粒若干,瓶和金属颗粒的总质量为0.8kg,若在装金属颗粒的瓶中再装满水时,瓶.金属颗粒和水的总质量为0.9kg,求金属颗粒的质量和密度.
- 一道深刻而困难的应用题
- 意思是什么也没想 什么也没考虑的成语
猜你喜欢
- 已知关于x的方程(x-m)/2=x+m/3与(2x+1)/3=3x-2的解互为倒数,求m的值
- 太阳为什么可以发出强烈的光
- make sure of sth.怎么翻译
- “有什么作用”和写作方法有什么区别
- 如果a大于0,b小于0,那么ab( )0 b分之a( )0 若a小于0,b小于0,则ab( )0?b分之a( )0
- 效应T细胞分泌的抗体是怎样进入发炎部位的
- 已知△ADE∽△DEF,诺△ABC的三边长分别为5cm,6cm,7cm,而△DEF中的一边长为4cm,你能求出△DEF的另外两边的
- 订书机是不省力也不费力的杠杆吗