合成関数計算

5 views (last 30 days)
Yu Horiuchi
Yu Horiuchi on 23 Jun 2021
Commented: Yu Horiuchi on 30 Jun 2021
合成関数の計算をしたいのですが、y=f(x),y=g(x)を置いた時に(整式とは限らない、例えば、f(x) = (sqrt(4*a*x-4*a*c+b^2)-b)/(2*a) のようにおいたりする時)にf(g(x))を求めるようなコードを教えてください

Accepted Answer

Megumi Fukuda
Megumi Fukuda on 24 Jun 2021
Edited: Megumi Fukuda on 24 Jun 2021
Symbolic Math Toolboxをお持ちでしたら、composeを使うのはどうでしょうか?
syms x y a b c;
f = (sqrt(4*a*x-4*a*c+b^2)-b)/(2*a)
g = sin(y)
compose(f, g)
MATLABでやりたいことを探す場合、「(キーワード) MATLAB」で検索するとすぐ出てくることがあります。
今回の場合、
「MATLAB 合成関数」
でweb検索すると、比較的上位にcomposeのページが出てくると思います。お試しください。
  1 Comment
Yu Horiuchi
Yu Horiuchi on 30 Jun 2021
ありがとうございます。活用させていただきます。

Sign in to comment.

More Answers (1)

Atsushi Ueno
Atsushi Ueno on 23 Jun 2021
予め関数を定義すれば、数学の数式と同様にf(g(x))と書けば動作します。(a,b,c等係数は固定で適当な値です)
もし質問の意図と回答内容が違っていたら教えて下さい。
x = 10;
y = f(x)
y = 2.5414
x = 5;
y = g(x)
y = 10
y = f(g(x))
y = 2.5414
function y = f(x)
a = 1; b = 1; c = 1;
y = (sqrt(4*a*x-4*a*c+b^2)-b)/(2*a);
end
function y = g(x)
y = 2 * x;
end
  3 Comments
Atsushi Ueno
Atsushi Ueno on 24 Jun 2021
シンボリックな数式の事だと思いますが、それはSymbolic Math Toolbox を使えば可能です。数式を文字のまま認識します。具体的な方法は既に@Megumi Fukudaさんが回答しています。
Yu Horiuchi
Yu Horiuchi on 30 Jun 2021
ありがとうございます。活用させていただきます。

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!