Matlab中函数文件中输入变量的问题,请高手赐教.函数文件如下:function F=myfun(x)F=[x(1)+x(2)-1-P;x(1)-x(2)-P];同一工作目录下,在MATLAB明亮窗口运行下列指令:for P=1:10x0 = [-6;-5];x = fsolve(@myfun,x0) %使用fs
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/03 22:56:49
Matlab中函数文件中输入变量的问题,请高手赐教.函数文件如下:function F=myfun(x)F=[x(1)+x(2)-1-P;x(1)-x(2)-P];同一工作目录下,在MATLAB明亮窗口运行下列指令:for P=1:10x0 = [-6;-5];x = fsolve(@myfun,x0) %使用fs
Matlab中函数文件中输入变量的问题,请高手赐教.
函数文件如下:
function F=myfun(x)
F=[x(1)+x(2)-1-P;
x(1)-x(2)-P];
同一工作目录下,在MATLAB明亮窗口运行下列指令:
for P=1:10
x0 = [-6;-5];
x = fsolve(@myfun,x0) %使用fsolve 函数求解方程,options默认,等价形式还可以写成x-fosolve('myfun',x0)
end
----------------------------------------------------------------------------------
Matlab中的错误提示为:
Undefined function or variable 'P'.
Error in ==> myfun at 10
F=[x(1)+x(2)-1-P;
Error in ==> fsolve at 193
fuser = feval(funfcn{3},x,varargin{:});
--------------------------------------------------------------------
应该是我函数文件中P用的不对,可是这个P在主程序中是个变量,我要怎么处理这种情况呢,望高手赐教.
Matlab中函数文件中输入变量的问题,请高手赐教.函数文件如下:function F=myfun(x)F=[x(1)+x(2)-1-P;x(1)-x(2)-P];同一工作目录下,在MATLAB明亮窗口运行下列指令:for P=1:10x0 = [-6;-5];x = fsolve(@myfun,x0) %使用fs
%通过定义全局变量来解决这个问题..
function F=myfun(x)
global P; %将P设置为全局变量, 这样matlab就会在已有变量中搜寻之.
F=[x(1)+x(2)-1-P;
x(1)-x(2)-P];
end
---------------------------
此外, 在主函数中也修改
global P;
for P=1:10
x0 = [-6;-5];
x = fsolve(@myfun,x0) %使用fsolve 函数求解方程,options默认,等价形式还可以写成x-fosolve('myfun',x0)
end
-----------------------------------------
测试通过:
Optimization terminated: first-order optimality is less than options.TolFun.
x =
1.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
2.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
3.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
4.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
5.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
6.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
7.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
8.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
9.5000
0.5000
Optimization terminated: first-order optimality is less than options.TolFun.
x =
10.5000
0.5000