Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2007-12-22, 16:55   #2
czy515
初级会员
 
注册日期: 2007-12-20
帖子: 2
声望力: 0
czy515 正向着好的方向发展
默认 继续求助

各位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的值传递到子程序?或者采用其它的解非线性方程的办法?
czy515 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:10


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.