% 首先定义v(i)变量,目的是当输入v(1)~v(16)就可以调用其中一个,查阅好多资料才找到
for i=1:16
v(i)=sym(['v',num2str(i)]);
end
% 对@(x)函数累加求和
fun_1=0;
for ii=1:17
fun_1_all=@(x) ((1-x./l_pipe1).*v(ii)+(x./l_pipe1).*v(ii+1)).^2;
fun_1=fun_1_all+fun_1;
end
若经过以上程序,就会报错!!
未定义与 'function_handle' 类型的输入参数相对应的运算符 '+'。
经查阅大量大量资料,才找到解决方案!!
以下就是最终程序!!!!
for i=1:16
v(i)=sym(['v',num2str(i)]);
end
fun_1=@(x) 0;
for ii=1:17
fun_1_all=@(x) ((1-x./l_pipe1).*v(ii)+(x./l_pipe1).*v(ii+1)).^2;
fun_1=@(x) fun_1_all(x)+fun_1(x);
end