Azzera filtri
Azzera filtri

solve関数で簡単な数式を解く方法

4 visualizzazioni (ultimi 30 giorni)
s
s il 28 Set 2021
Commentato: s il 28 Set 2021
solve関数を使って
2a + 3b = 0
という方程式をa/bについて解きたいです。
つまり
a/b = -(3/2)
の形にしたいです。
以下が、matlab コードです。
clear; clc; close all;
syms a b
assume(a ~= 0)
assume(b ~= 0)
eqn=2*a+3*b==0
ans=solve(eqn,a/b)
これで解くと、ansが空になります。
原因と対処法を教えていただけましたら幸いです。

Risposta accettata

Atsushi Ueno
Atsushi Ueno il 28 Set 2021
原因:solve関数がシンボリック変数以外の引数を受け付けないから
対処法:solve関数の出力を個別にシンボリック変数で受け取り、後で計算式を解く
clear; clc; close all;
syms a b
assume(a ~= 0)
assume(b ~= 0)
eqn=2*a+3*b==0;
syms a2 b2
[a2, b2] = solve(eqn,a,b)
a2 = 
b2 = 
1
a2/b2
ans = 
  1 Commento
s
s il 28 Set 2021
solve 関数は引数を一つ一つでしか認識できなかったのですね。大変勉強になりました。ご丁寧にどうもありがとうございます。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Symbolic Math Toolbox in Help Center e File Exchange

Tag

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!