how to calculate the summation of a function having two variables.
12 次查看(过去 30 天)
显示 更早的评论
I want to calculate:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/227826/image.png)
in Matlab and I have f(x,y),(for example: f(x,y) = 2y*sin(x), N =50) how can I calculate f(x) in Matlab? I need it for minimizing f(x) with fminunc command.
0 个评论
回答(1 个)
Star Strider
2019-7-7
The summation is across ‘f(x,y)’, not only ‘y’, so the function must work for all values of the arguments. The only way to do this is to create both arguments as matrices, since the multiplication will only work for matrices of the same size, then sum across the ‘y’ matrix.
One approach:
N = 50;
x = linspace(0, 10*pi, 250); % Define ‘x’
[X,Y] = ndgrid(x, (1:N)); % Define (x,y) As Matrices
fxy = @(x,y) sum(2*y.*sin(x),2); % Define ‘f(x,y)’, Sum Across Rows (‘y’)
fx = @(x) fxy(x,Y); % Define ‘f(x)’ Given ‘y’
plot(X, fx(X))
grid
The summation is across the rows because that is how the ndgrid function creates the matrices, as I have defined them here.
Even if this is homework, the approach would not be obvious for someone with little experience in these sorts of MATLAB calculations.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!