2015-04-25 30 views
2

请帮帮我! 有程序operation[f_]。 它可以正常工作并绘制函数:Cos,Sin。 ?((这是什么问题如何修复程序

spxsin = {-1, -0.35, 0.3, 0.95, 1.6, 2.375, 3.15, 3.925, 4.7, 5.025, 
5.35, 5.675, 6}; 
spxcos = {-1, -0.75, -0.5, -0.25, 0, 0.775, 1.55, 2.325, 3.1, 3.825, 
4.55, 5.275, 6}; 
spxlny = {-1, 0.75, 2.5, 4.25, 6}; 
spxey = {-1, 0.75, 2.5, 4.25, 6}; 
operation[f_] := Block[{data}, 
data = Table[{x, f[x]}, {x, -1, 6, 0.1}]; 
Graphics[{Thick, Blue, Line[data], 
Green, Table[Point[{spx[­[i]], f[spx[­[i]]]}], {i, 1, Length[spx]}], 
Pink, Opacity[.7], 
Table[Rectangle[{spx[­[i]], f[spx[­[i]]]}, {spx[­[i + 1]], 
f[spx[­[i + 1]]]}], {i, 1, Length[spx] - 1}] 
}, Axes -> True]] 

Which[ f == Sin, spx := spxsin, f == Cos, spx := spxcos, f == E^x , 
spx := spxlny, f == Log, spx := spxey] 

operation[Sin] 
operation[Cos] 
operation[E^x] 
operation[Log] 

回答

1

欧拉;但不幸的是,它并不针对E^x和日志[E,X]和输出错误,也许是因为输入的功能还是别的什么不正确的名称工作Ë需要输入为Esc键EE Esc键 在我看来你输入的是一个标准的E.

还要注意的是精通是数学指数函数

+0

谢谢! Exp工程!但不幸的是,日志不起作用,尽管我编辑了spxey = {0.75,2.5,4.25,6};和数据=表[{x,f [x]},{x,1,6,0.1}];你可以帮我吗? – Julka

+0

您在问题中写入Log [E,x]。你有没有试过Log [x]? – soegaard

+0

我试了一下[Log] – Julka

2

编辑现在测试:你可以通过纯功能到您的operation,所以不是:operation[E^x]尝试

operation[E^# &] 

,或者例如,如果你想要一个基地2登录这将是

operation[Log[2,#]&] 

一些其他的东西指出:Log只是失败,因为你的x表范围是负的。

此外,您拥有的Which声明不会执行任何操作。在你的函数之外,f没有被定义,所以没有一个条件是True。移动Which里面的功能,这个工程:

spxsin = {-1, -0.35, 0.3, 0.95, 1.6, 2.375, 3.15, 3.925, 4.7, 5.025, 
    5.35, 5.675, 6}; 
spxcos = {-1, -0.75, -0.5, -0.25, 0, 0.775, 1.55, 2.325, 3.1, 3.825, 
    4.55, 5.275, 6}; 
spxlny = {-1, 0.75, 2.5, 4.25, 6}; 
spxey = {-1, 0.75, 2.5, 4.25, 6}; 
operation[f_] := 
    Block[{data}, data = Table[{x, f[x]}, {x, -1, 6, 0.1}]; 
    Clear[spx]; 
    Which[ 
     TrueQ[f == Sin], spx := spxsin, 
     TrueQ[f == Cos], spx := spxcos , 
     TrueQ[f == (E^# &)], spx := spxey ]; 
    Graphics[{Thick, Blue, Line[data], Green, 
    Table[{PointSize[.1], Point[{spx[[i]], f[spx[[i]]]}]}, {i, 1, Length[spx]}], 
    Pink, Opacity[.7], 
    Table[Rectangle[{spx[[i]], f[spx[[i]]]}, {spx[[i + 1]], 
     f[spx[[i + 1]]]}], {i, 1, Length[spx] - 1}]}, Axes -> True, 
      AspectRatio -> 1/GoldenRatio]] 

注意每个测试被包裹在TrueQ,以确保它要么是TrueFalse(测试Sin==Cos并不适用于所有值均为假,因此不返回False

operation[Sin] 
operation[Cos] 
operation[E^# &] 

enter image description here

现在如果你想Exp也工作,你需要明确提出这在你的Which声明中形成。 (f==(E^#&) || f==Exp

相关问题