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

 채택된 답변

Megumi Fukuda
Megumi Fukuda 2021년 6월 24일
편집: Megumi Fukuda 2021년 6월 24일

2 개 추천

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

Yu Horiuchi
Yu Horiuchi 2021년 6월 30일
ありがとうございます。活用させていただきます。

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Atsushi Ueno
Atsushi Ueno 2021년 6월 23일

1 개 추천

予め関数を定義すれば、数学の数式と同様に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

Yu Horiuchi
Yu Horiuchi 2021년 6월 23일
具体値ではなく、数式自体を求めるってことは不可能なのでしょうか?
Atsushi Ueno
Atsushi Ueno 2021년 6월 24일
シンボリックな数式の事だと思いますが、それはSymbolic Math Toolbox を使えば可能です。数式を文字のまま認識します。具体的な方法は既に@Megumi Fukudaさんが回答しています。
Yu Horiuchi
Yu Horiuchi 2021년 6월 30일
ありがとうございます。活用させていただきます。

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 プログラミング에 대해 자세히 알아보기

질문:

2021년 6월 23일

댓글:

2021년 6월 30일

Community Treasure Hunt

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

Start Hunting!