Main Content

symfun

シンボリック関数の作成

説明

f(inputs) =formulaはシンボリック関数fを作成します。たとえば、f(x,y) = x + yを使用すると、inputs内のシンボリック変数は、入力引数です。シンボリック式formulaは、関数fの本体です。

f= symfun(formula,inputs)は、形式に則ったシンボリック関数の作成方法です。

すべて折りたたむ

シンボリック関数f(x,y) = x + yを定義します。まず、symsを使用して関数を作成します。その後、関数を定義します。

symsf(x,y)f(x,y) = x + y
f(x, y) =
                       
                        
                         
                          
                           
                            x
                           
                            +
                           
                            y
                          
                         
                        
                       

x = 1y = 2におけるfの値を求めます。

f(1,2)
ans =
                       
                        
                         
                          3
                        
                       

形式に則った方法を使用して関数を再定義します。

symsxyf = symfun(x+y,[x y])
f(x, y) =
                       
                        
                         
                          
                           
                            x
                           
                            +
                           
                            y
                          
                         
                        
                       

formulaを使用して、シンボリック関数の本体を返します。本体は、関数にインデックスを付けるといった演算に使用できます。argnamesを使用して、シンボリック関数の引数を返します。

シンボリック関数(x ^ 2, y ^ 4)にインデックスを付けます。シンボリック関数がスカラーであるため、関数に直接インデックス付けができません。代わりに、関数の本体にインデックスを付けます。

symsf(x,y)f(x,y) = [x^2, y^4]; fbody = formula(f); fbody(1)
ans =
                       
                        
                         
                          
                           
                            x
                          
                          
                           
                            2
                          
                         
                        
                       
fbody(2)
ans =
                       
                        
                         
                          
                           
                            y
                          
                          
                           
                            4
                          
                         
                        
                       

関数の引数を返します。

fvars = argnames(f)
fvars =
                       
                        
                         
                          
                           (
                          
                           
                            
                             
                              
                               x
                             
                            
                            
                             
                              
                               y
                             
                            
                           
                          
                          
                           )
                         
                        
                       

2 つのシンボリック関数を作成します。

symsf(x)g(x)f(x) = 2*x^2 - x; g(x) = 3*x^2 + 2*x;

2 つのシンボリック関数を、データ型がsymfunの別のシンボリック関数 h ( x ) に結合します。

h(x) = [f(x); g(x)]
h(x) =

( 2 x 2 - x 3 x 2 + 2 x )

関数 h ( x ) x = 1 および x = 2 で評価します。

h(1)
ans =

( 1 5 )

h(2)
ans =

( 6 16 )

また、この 2 つの関数を組み合わせて、データ型がsymのシンボリック式の配列にすることもできます。

h_expr = [f(x); g(x)]
h_expr =

( 2 x 2 - x 3 x 2 + 2 x )

1 番目と 2 番目のシンボリック式にアクセスするために、h_exprにインデックスを付けます。

h_expr(1)
ans =
                       
                        
                         
                          
                           
                            
                             
                              2
                             
                             
                             
                              
                               
                                x
                              
                              
                               
                                2
                              
                             
                            
                           
                           
                            -
                           
                            x
                          
                         
                        
                       
h_expr(2)
ans =
                       
                        
                         
                          
                           
                            
                             
                              3
                             
                             
                             
                              
                               
                                x
                              
                              
                               
                                2
                              
                             
                            
                           
                           
                            +
                           
                            
                             
                              2
                             
                             
                             
                              x
                            
                           
                          
                         
                        
                       

入力引数

すべて折りたたむ

関数本体。シンボリック式、シンボリック式のベクトル、またはsymデータ型に変換可能なシンボリック式の行列として指定します。

例:x + y

関数の入力引数。シンボリック変数、またはシンボリック変数の配列 (複数指定の場合) で指定します。

例:[x,y]

データ型:sym

出力引数

すべて折りたたむ

シンボリック関数。symfunオブジェクトとして返されます。

関数fのデータ型はsymfunですが、f(1,2)のような評価済みの関数のデータ型はsymになります。

バージョン履歴

R2012a で導入