求高手指教:matlab编写一个函数文件,知道x,y的关于t的参数方程,求y*x'(x对t的导数)的返回函数的值

比如说:
function s=y_diff_x(t);
x=sin(t);
y=cos(t);
s=y*diff(x);
这样编写的话直接在命令框中输入y_diff_x(1)的话,不能返回s=cos(1)*cos(1)的值,返回的是空矩阵,要怎么编写才对,谢谢!

你是要输入一个t的数值t0然后返回y(t0)*x'(t0)吗?是的话这样写吧:
function s=y_diff_x(t0)
syms t
x=sin(t);
y=cos(t);
s=subs(y,t,t0)*subs(diff(x,t),t,t0);
(当然其实可以写得更简洁)
需要答案是symbolic的还是numerical的?我是按numerical写的追问

其实我的最终目标是想求定积分,想求quad('y_diff_x',t0,t2)的积分,按照你的方法可以求出我所需要的结果,但是积分的时候会出错,我是matlab新手,所以基本功很不扎实,你的回答很专业,万分感谢!

追答

你想求这个定积分就直接把y_diff_x的表达式弄进去积分啊。。。
唉,算了,我怀疑我没有搞懂你到底要干什么。。。

追问

对于我的表达我很抱歉,我在matlab中用m文件编号你提供的程序,在命令行中输入y_diff_x(0),可以算出结果,但是输入quad('y_diff_x',0,1)的时候提示出错了,如下面所示:



不知道是哪里出问题了,还请帮帮忙,谢谢!

追答

(说实话,我从来没用过quad。。。help里面都说以后要把quad丢出去。。。=-=)
那个函数我重写一遍:
function s=y_diff_x(t0)
syms t
x=sin(t);
y=cos(t);
s=subs(y,t,t0).*subs(diff(x,t),t,t0);
主要是要加个“.”

温馨提示:答案为网友推荐,仅供参考
相似回答