hanihaoma 发表于 2009-5-15 16:31

隐函数调用

现有函数 f=q+b+c 程序如下
function v=fcn(h)
syms h,a,n,m
f1=;
q=a^2+a*n;
b=q+q*h+h^2;
c=b^2+b*q;
f=q+b+c;
v=sum(abs(f-f1)^2);

现在我需要调用函数v   用fminsearch 求出v 最小时 h 的值。
请问应该怎么实现。
我直接在另外一个.m 文件里 写下面的程序总报错:
clear all
close all
clc
function fun=fcn(h)
=fminsearch(fun,35:45)

报错如下:
??? function
            |
Error: "identifier" expected, "end of line" found.
找了相应的例子,和解释,也改了好久,还是不行,还请朋友们帮忙看看。

ChaChing 发表于 2009-5-16 01:24

建议楼主先看下function相关帮助文献

hanihaoma 发表于 2009-5-18 15:45

看过帮助文件了,又改了。去掉了
clear all
close all
clc
function fun=fcn(h)
然后给fcn所用变量赋值,然后在用fminsearch
但还是报错

??? function
            |
Error: "identifier" expected, "end of line" found.

hanihaoma 发表于 2009-5-18 15:49

fcn 中的变量我都用global 定义了,不用syms了。
需要的话我可以把原程序贴上来。
其实我写了一个简单的函数,在网上找的例子,能运行的。
但是到我自己这里,由于函数比较复杂,通过好多方程,才能推出最后的v,
所以实在是不知道问题在哪里了。
我用的版本是6,5 的。
要是改用7.1版本的 提示错误如下:
??? function
    |
Error: Function definitions are not permitted at the prompt or in scripts.

hanihaoma 发表于 2009-5-18 17:14

问题解决,主要问题个人认为应该是因为
我调用函数的.m 文件的文件名叫function 所以不能用。
知道是这个问题,当时就差点没郁闷死。
页: [1]
查看完整版本: 隐函数调用