我是matlab的新手,目前正在搜索如何在matlab中求解数学函数。
这就是我想要的,我想求解一个函数f(x)= x ^ 2 + 2x + 1,其中x = 2。我想将x ^ 2 + 2x + 1和2作为输入并显示输出。
从这个链接,我看到了如何求解数学函数。链接中可用的过程是:
>>f = @(x) 2*x^2-3*x+4;
>>f(3)
ans = 13
因此,我在脚本中编写了以下部分:
F=input('enter function: ','s');
v = input('parameter: ');
f=@(x)F;
disp(f(v));
当我提供x + 1和3作为输入时,我得到的ans是x + 1。如何解决这个问题呢?
提前致谢。
您的F
变量是一个简单的字符串"x + 1"
。您必须要求matlab将此字符串解释为一个函数才能获得数值。
一种这样做的方法是使用 eval
F = input('enter function: ', 's' );
v = input('parameter: ');
myfun = sprintf('@( %s ) %s', v, F ); % a string
f = eval( myFun ); % interpret string as a command
f( 3 ), % do the math - evaulate F(3)
编辑,基于下面的评论进行了澄清:
上面的解决方案假定F
,表示数学公式的输入字符串可能具有用户选择的变量(即,未知数不一定是'x'
,它可能是'y'
,'a'
等等)。 ,v
是存储此信息的字符。
如果F
始终取决于'x'
,并且所需的输出是F(v)
数字值v
,则需要进行以下修改:
myfun = sprintf('@(x) %s', F );
f = eval(myfun);
F_of_v = f( v )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句