Azzera filtri
Azzera filtri

合成関数計算

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

Risposta accettata

Megumi Fukuda
Megumi Fukuda il 24 Giu 2021
Modificato: Megumi Fukuda il 24 Giu 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 Commento
Yu Horiuchi
Yu Horiuchi il 30 Giu 2021
ありがとうございます。活用させていただきます。

Accedi per commentare.

Più risposte (1)

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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!