How to use an anonymous function in a ''for''?

2 ビュー (過去 30 日間)
Migue Balma
Migue Balma 2020 年 10 月 15 日
コメント済み: Steven Lord 2020 年 10 月 15 日
Hi everyone!!
I'm trying to write a general solution for a differential equation using a moment method (Galerkin, with polynomials as base functions). When I try to write the general solution por N polynomials, the anonymous function that I'm using, it doesnt update with every loop. I write my code:
N = 10; %number of elements;
l = zeros([N,N]);
g = zeros(N,1);
A = zeros (N,1);
f = @(x) 0;
for i=1:N
for k = 1:N;
l(i,k) = i*k/(i+k+1);
g(k,1) = (k*(8+3*k))/(2*(2+k)*(4+k));
A = linsolve(l,g);
f = @(x) f(x) + A(i,1)*(x - x.^(i+1));
end
end
Thanks!!
  3 件のコメント
Migue Balma
Migue Balma 2020 年 10 月 15 日
The function I want to create is:
Where the element A(i,1) has the coefficient I want. I use a for in that anonymous function because I want to have it regardless of the value of N. If N = 3, I should have 3 polynomials and so on.
Thank you!!
Steven Lord
Steven Lord 2020 年 10 月 15 日
Use the sum function and element-wise operations inside the anonymous function.

サインインしてコメントする。

採用された回答

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam 2020 年 10 月 15 日
if you don't need to use it inside loop. you can define f(x) after for loop:
N = 10; %number of elements;
l = zeros([N,N]);
g = zeros(N,1);
A = zeros (N,1);
for i=1:N
for k = 1:N;
l(i,k) = i*k/(i+k+1);
g(k,1) = (k*(8+3*k))/(2*(2+k)*(4+k));
A = linsolve(l,g);
f = @(x) f(x) + A(i,1)*(x - x.^(i+1));
end
end
f = @(x) sum(A'.*(x-x.^(2:N+1)));
  1 件のコメント
Migue Balma
Migue Balma 2020 年 10 月 15 日
編集済み: Migue Balma 2020 年 10 月 15 日
Thank you for your answer!! But when I insert and array of values, for example, x1 = linspace (0,1). It gives me an error, that can't evaluate f(x1) to represent it in a plot, I don't know why.
Edit: I solve it using another ''for'' to evaluate the function:
x1 = linspace(0,1)
f1 = zeros(1,length(x1));
for j = 1: length (x1);
f1(j) = f(x1(j));
end
Thank you so much!! You solved my question!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

製品


リリース

R2017b

Translated by