matlab优化的参数传递

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 初学者最爱用但是最不提倡的方法:全局变量法

适用于MA TLAB7以及以前或者以后的版本

function withaddtionpara1

global b c

b = 2;

c = 3.5; x0 =0;

options = optimset('Display', 'off'); % Turn off Display

y = fsolve(@poly, x0, options)

function y = poly(x) % Compute the polynomial.

global b c

y = x^3 + b*x + c;

2. 直接传递法

适用于MA TLAB7以及以前或者以后的版本

根据:

X=FSOLVE(FUN,X0,OPTIONS,P1,P2,...) passes the problem-dependent parameters P1,P2,... directly to the function FUN: FUN(X,P1,P2,...). Pass an empty matrix for OPTIONS to use the default values.

如果options不需要设置,则用空矩阵('[]')占位

function withaddtionpara2

b = 2;

c = 3.5; x0 =0;

options = optimset('Display', 'off'); % Turn off Display

y = fsolve(@poly, x0, options,b,c)

function y = poly(x,b,c) % Compute the polynomial.

y = x^3 + b*x + c;

3. 采用evalin以及assignin函数法

适用于MA TLAB7以及以前或者以后的版本

function withaddtionpara3

b = 2;

c = 3.5; x0 =0;

assignin('base','b',b);

assignin('base','c',c);

options = optimset('Display', 'off'); % Turn off Display y = fsolve(@poly, x0, options)

function y = poly(x) % Compute the polynomial.

b = evalin('base','b');

c = evalin('base','c');

y = x^3 + b*x + c;

4. 匿名函数法(Anonymous function)

适用于MA TLAB7以及以后的版本

function withaddtionparas4

options = optimset('Display', 'off'); % Turn off Display b =2; c = 3.5; x0 =0;

y = fsolve(@(x)mypoly(x,b,c), x0, options)

function y = mypoly(x,b,c)

y = x^3 + b*x + c;

5. 嵌套函数法(nested function)

适用于MA TLAB7以及以后的版本

function withaddtionpara5

b =2;

c = 3.5; x0 =0;

options = optimset('Display', 'off'); % Turn off Display y = fsolve(@poly, x0, options)

function y = poly(x) % Compute the polynomial.

y = x^3 + b*x + c;

end

end

6. 采用文件传递(有些太笨拙了的办法)

适用于MA TLAB7以及以前或者以后的版本

function withaddtionpara6

b = 2;

c = 3.5; x0 =0;

save paras b c

options = optimset('Display', 'off'); % Turn off Display y = fsolve(@poly, x0, options)

function y = poly(x) % Compute the polynomial. load paras.mat

y = x^3 + b*x + c;

相关文档
最新文档