0

微分方程式があり、それを matlab の関数で解きたいとしますdsolveが、最初にユーザーに初期値を尋ねる必要があり、ユーザーが入力した内容に従ってプログラムが答えを出すとします。

どうすればいいですか?

4

2 に答える 2

0

あなたが試した(あなたのコメントによると):

a=input('y(0) = ');
b=input('y''(0) = ');
c=input('input the first of the domain : ');
d=input('input the last of the domain : ');
sym x;
y=dsolve('D2y+Dy+y=cos(x)','y(0)=a','Dy(0)=b','x');
h=ezplot(y,[c d]);

出力を無視するため、sym xは何もしません。安全に省略できます。

ここで、コマンドへのユーザー入力を取得するにdsolveは、対応する文字列を作成するコードを記述する必要があります。

y=dsolve('D2y+Dy+y=cos(x)',['y(0)=' num2str(a)],['Dy(0)=' num2str(b)],'x');

または、フラグ およびとともに使用inputします。's'['y(0)=' a]

于 2013-03-17T09:37:38.257 に答える
0

ユーザー入力を取得する方法を知りたいですか? その後、input()関数を使用することができます。例:

reply = input('Do you want more? Y/N [Y]: ', 's');

ここで、's'パラメーターは、ユーザーの入力が評価されないことを意味します。つまり、文字は単に MATLAB 文字列として返されます。によって解決される式をユーザーに入力してもらいたい場合がありますdsolve。次のようなことができます:

expression = input('Which expression do you want to solve?','s');
dsolve(expression)

ユーザーが を入力する'Dx = -a*x'と、 が表示されますdsolve('Dx = -a*x')

詳細については、input()Web ドキュメントを参照してください。

于 2012-09-07T05:57:18.430 に答える