- 関数ハンドルa=引数xを持つ無名関数とし
- 関数ハンドルb=引数xを持つ無名関数と関数ハンドルaの足し算
- ⇒ここで同じ引数を持つ2つの無名関数の和を得たい
数式内での関数ハンドルの処理について
조회 수: 7 (최근 30일)
이전 댓글 표시
以下のような「ωを含む数式-(ωを引数とする関数ハンドル)」のような、数式の内部で関数ハンドルを演算する形が成立するのかどうかが疑問です。
ただし、
댓글 수: 0
채택된 답변
Atsushi Ueno
2021년 11월 22일
これは前の質問における自分の疑問点です。この質問の具体的な例を挙げます。
で、色々やっている内に自己解決しました。
a = @(x) (x^2);
b = @(x) (x^3 + a); % 例えばb(2) = x^3+x^2 = 12 を得たい
% b(2) % これはダメ
% b = @(x) (x^3 + func2str(a)); % これでもダメ
b = @(x) (x^3 + feval(a,x)); % できた
b(2)
댓글 수: 2
Atsushi Ueno
2021년 11월 22일
JとKに分割する際に、feval(J,w)とする事によって、無名関数中に入れた無名関数ハンドルをωについて評価した結果を演算してくれます。
A=1;m=1;s=1;wA=1;const=10^-10; %定数を決定
%2の計算 まず、eで積分 (⇒@(w)を先頭に移動した)
J=@(w)ffun(@(e)A.*exp(-(e-m).^2./(2*pi.*s.^2))./(w-e),-inf,w-const,w+const,inf)-1i*pi*A.*exp(-(w-m).^2./(2*pi.*s.^2));
%1の計算 次に、wで積分 (⇒Jをfeval(J,w)に変更した)
K=@(t)gfun(@(w)exp(-1i*w.*t)./(w-wA-feval(J,w)),-inf,inf);
function f=ffun(fun,a,b,c,d)
f=integral(fun,a,b)+integral(fun,c,d);
end
function g=gfun(fun,a,b)
g=integral(fun,a,b);
end
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!