合成関数計算

5 Ansichten (letzte 30 Tage)
Yu Horiuchi
Yu Horiuchi am 23 Jun. 2021
Kommentiert: Yu Horiuchi am 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))を求めるようなコードを教えてください

Akzeptierte Antwort

Megumi Fukuda
Megumi Fukuda am 24 Jun. 2021
Bearbeitet: Megumi Fukuda am 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 Kommentar
Yu Horiuchi
Yu Horiuchi am 30 Jun. 2021
ありがとうございます。活用させていただきます。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Atsushi Ueno
Atsushi Ueno am 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 Kommentare
Atsushi Ueno
Atsushi Ueno am 24 Jun. 2021
シンボリックな数式の事だと思いますが、それはSymbolic Math Toolbox を使えば可能です。数式を文字のまま認識します。具体的な方法は既に@Megumi Fukudaさんが回答しています。
Yu Horiuchi
Yu Horiuchi am 30 Jun. 2021
ありがとうございます。活用させていただきます。

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!