matlab中Dsolve的初始值

时间:2012-09-06 15:03:48

标签: matlab symbolic-math dsolve

假设您有一个微分方程,并且您想在matlab中使用dsolve函数解决该问题,但首先您必须询问用户初始值,并根据他输入的内容给出答案。< / p>

我该怎么做?

2 个答案:

答案 0 :(得分: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 documentation

中的更多信息

答案 1 :(得分: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]一起使用。