0

假设你有一个微分方程,你想用dsolvematlab 中的函数求解它,但首先你必须向用户询问初始值,然后根据他输入的内容,程序给出答案。

我该怎么做?

4

2 回答 2

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 回答
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 回答