Function Scilab:获取函数的未关联参数
我想知道是否有一种方法可以实现像这样的目标Function Scilab:获取函数的未关联参数,function,scilab,Function,Scilab,我想知道是否有一种方法可以实现像这样的目标 -->80923=myCoolFunction(p,56,7) p=24 在Scilab?以下是我键入此命令时的当前结果: -->8761.7635 = tauxcompose(p, 4, 25) Warning: obsolete use of '=' instead of '=='. ! !--error 4 Undefined variabl
-->80923=myCoolFunction(p,56,7)
p=24
在Scilab?以下是我键入此命令时的当前结果:
-->8761.7635 = tauxcompose(p, 4, 25)
Warning: obsolete use of '=' instead of '=='.
!
!--error 4
Undefined variable: p
谢谢您的回答。您必须使用
fsolve
,如文档所示@
示例:
function r = myCoolFunction(p,a)
r = p .^2 .* exp(-a*p)
endfunction
p
是变量a
是一个额外的参数(如示例a=56等)
现在我们搜索p,例如myCoolFunction(p,1)==100
,假设至少有一个解。我们建造
deff("out = gap(p,a,c)","out = myCoolFunction(p,a) - c")
初始猜测p0:显示myCoolFunction(p,1)
的绘图,并查看它在100左右的位置
p0 = -3;
然后我们调用fsolve
:
[p,v,status] = fsolve(p0, list(gap,1,100))
结果:
独立检查:
--> p = fsolve(-4, list(gap, 2, 1e4))
p =
-3.3856301
--> myCoolFunction(p, 2)
ans =
10000.000
现在,什么是p
来获得myCoolFunction(p,2)==1e4
p = fsolve(-4, list(gap, 2, 1e4))
myCoolFunction(p, 2)
结果和检查:
--> p = fsolve(-4, list(gap, 2, 1e4))
p =
-3.3856301
--> myCoolFunction(p, 2)
ans =
10000.000
我不太清楚你想要什么样的行为。你想知道在80923中给MyColFunction赋予的p是什么吗?你有一个Matlab/GNU倍频程的例子吗?我从来没有见过这样的事情。是的,我想知道,如果我用这种方式调用函数,有一种方法可以得到p的值吗?我在Scilab中也没有看到这样的东西,但我有一个任务,我需要计算这个p,并且它写着我不需要任何计算或新函数,所以…我从来没有在任何编程语言中见过这样的东西。通常输入定义在右侧,输出定义在左侧。如果没有关于问题的任何功能性知识,您可以强制执行它,并在while循环中继续尝试
p
的值,而答案不等于80923。我可能会在Prolog中工作,但我甚至不想尝试,哈哈。我可能会像你说的那样使用暴力。谢谢回答:)
--> p = fsolve(-4, list(gap, 2, 1e4))
p =
-3.3856301
--> myCoolFunction(p, 2)
ans =
10000.000