修改
澄清。我有一个函数f
,它接受5个参数z,x,y,n,m
。事件的顺序应如下:
在调用函数test
后,分配了变量z
,例如z = 1
。
通过添加f
并添加ni
的每个元素来创建线性组合,结果存储在fn
中,因此(z = 1,所以没有更多z变量):
fn = x + 2.*y + exp(0) - sqrt(m) +
x + 2.*y + exp(2) - sqrt(m) +
x + 2.*y + exp(4) - sqrt(m) +
x + 2.*y + exp(6) - sqrt(m) +
x + 2.*y + exp(8) - sqrt(m) +
x + 2.*y + exp(10) - sqrt(m) =
6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(m) =
6*x + 12*y + 25473.8 - 6*sqrt(m)
fn
并插入mi
的每个元素来创建线性组合,结果存储在fnm
中。 (我不知道怎么做1.和2.同时。如果你这样做,请告诉我): fnm = 6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(0) +
6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(2) +
6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(4) +
6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(6) +
6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(8) +
6*x + 12*y + 1 + exp(2) + exp(4) + exp(6) + exp(8) + exp(10) - 6*sqrt(10) =
6*x + 12*y + 25453.1
x
和y
中的xi
和yi
插入fnm
我遇到函数f
的双重求和问题。我试着在最后一个回答中提到这个例子here,但由于某些原因它没有用。由于我的变量x
和y
未事先定义,因此我将其包含在@()
的{{1}}中。我第一次收到错误arrayfun
,因此我在阅读了here之后将函数句柄Z must be a matrix, not a scalar or vector.
更改为符号函数。但是现在整个事情爆炸了......我不知道发生了什么。为什么说输入不够? fnm
只应该是第11行fn
的函数,因为x, y, m
已经被定义为某个数字(比方说1)和z
刚刚被总结。
n
这么多错误:(
function test(z)
f = @(z,x,y,n,m) z.*x + 2.*y + exp(n) - sqrt(m);
function s(z)
ni = 0:2:10;
mi = 0:2:10;
xi = -5:5;
yi = -5:5;
fn = @(n) arrayfun(@(z, x, y, ni, m) sum(f(z, x, y, ni, m)),n);
fnm = @(m) arrayfun(@(x, y, mi) sum(fn(x, y, mi)),m);
zz = sym(fnm);
[xx,yy] = meshgrid(xi,yi);
surf(xx,yy,zz)
end
s
end
答案 0 :(得分:1)
function test(zi)
syms z x y n m fn fnm;
f0=symfun(z.*x + 2.*y + exp(n) - sqrt(m),[z x y n m]);
z=zi;
ni=0:2:10;
mi=0:2:10;
fn=0;
for i=1:length(ni);
fn=symfun(fn+f0(z,x,y,ni(i),m),[x y m]);
end
fnm=0;
for i=1:length(mi)
fnm=symfun(fnm+fn(x,y,mi(i)),[x y]);
end
xi=-5:5;
yi=-5:5;
for i=1:length(xi)
for j=1:length(yi)
zz(i,j)=eval(fnm(xi(i),yi(j)));
end
end
[xx,yy]=meshgrid(xi,yi);
mesh(xx,yy,zz);
因此,test(1)产生了这个:
谨防symfun
次呼叫,这些呼叫应按顺序排列,以便每次总结保持在"符号"框架。可以使用arrayfun
,虽然它们很整洁,但它们可能不是必需的......让这个练习作为功课!! XD ..