2016-07-26 16 views
0

matlabでint[0,10]int[0,y] f(x,y) dxdyを計算したいと思います。もちろん、私はそれを行うにはintegral2またはquad2dを使用することができます:integral2(f,0,10,0,@(x)x)。しかし、g(y)=nt[0,y] f(x,y) dxも扱い、int[0,10] g(y) dyの積分を行うこともできます。 integ2を使用する代わりに、計算を行うために積分のみを使用したいと思います。どのようにmatlabで単一積分の点で二重積分を表現するのですか?

[email protected](y)integral(@(x)f(x,y),0,y)

integral(g,0,10)

しかし、それは

Error using integral (line 85) A and B must be floating point scalars.

私の質問があると、エラーメッセージを表示します:私が書くコードがある、それはの面で二重積分を表現することが可能です単一積分?どうやってするの?さらに、数10をベクトル、例えば0:1:10に変更するための入力ができるように、積分をベクトル化したいですか?

+0

あなたが実際に走ったコードを提供することができますか? – edwinksl

答えて

0

まず、小さな批評:象徴的な統合と分析的解決はMatlabの核心ではありません。制限されていますが、分析作業をしたい場合は、Matlab内の解析環境Mupadなどの優れたソリューションがあります。

言われているように、integrateを使って何をしようとしているのかは数値の統合です。しかし、未知の境界がある場合、数値的な統合は非常に困難です。より良いアプローチは、方法intとのシンボリック統合を使用することです。

あなたの2番目の質問に答えるには:シンボリック統合によるベクトル化が不可能であると私は恐れています。

私は次のようにコードを作り直し:

​​

対応するMATLABドキュメント:intintegral

関連する問題