Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#2 |
初级会员
注册日期: 2007-12-20
帖子: 2
声望力: 0 ![]() |
![]()
各位Matlab高手,我将我上次求助的问题简化了一下,希望各位高手能够帮忙指点迷津!
具体是:我要解一个非线性方程,方程中包含了一些参数,这些参数的值需要通过主程序提供。 例如:我要求解方程:ax+b/x+c=0的解,其中参数a、b、c的值必须由主程序计算得出,我变了一个子程序,通过主程序调用来解方程(当然实际程序要复杂得多): 子程序: function f=fz(x) f=a.*x+b./x+c; 主程序在命令窗口输入: a=1;b=2;c=3; x=fzero('fz',-5) 运行后总是出现如下错误提示: ??? Error using ==> fzero FZERO cannot continue because user supplied function_handle ==> fz failed with the error below. Undefined function or variable 'a'. 但如果我将参数a=1;b=2;c=3;移到子程序中,变为: 子程序: function f=fz(x) a=1;b=2;c=3; f=a.*x+b./x+c; 主程序在命令窗口输入: x=fzero('fz',-5) 运行结果正常:x = -2.0000 我现在存在的问题是参数a、b、c的值是由其它程序计算而来,不可能在子程序中输入,请问怎样将参数a、b、c的值传递到子程序?或者采用其它的解非线性方程的办法? |
![]() |
![]() |