问个matlab的问题,求高手解答!

1.求-0.5+t-10e^(0.2t)|sin[sint]|=0的实数解。
我输入solve('-0.5+t-10*exp(-0.2*t)*abs(sin(sin(t)))=0','t')界面会卡住,也没有提示错误,也没有算出结果。不知道怎么办,求指导!2.现有一组实验数据x,y(数据从prob-data418.mat获得),求这组数据的5阶拟合多项式。

1、可以用fzero求根。求之前先画出图来看看根的大致分布情况,由图可见,只有一个根。

参考代码:

f=inline('-0.5+t-10*exp(-0.2*t)*abs(sin(sin(t)))','t');
ezplot(f)
hold on
t0=fzero(f,0);
plot(t0,f(t0),'ro')
plot(xlim,[0 0],'c--')

2、使用polyfit进行多项式拟合(或者,在绘图窗口Tools菜单选择Basic Fitting进行拟合更简单)。

示例:

x=1:10;
y=sin(x);
plot(x,y,'.:')
hold on
p=polyfit(x,y,5);
xi=1:0.1:10;
plot(xi,polyval(p,xi),'r')
legend('原始数据','五次多项式拟合')

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-19
这种超越方程直接用solve确实不好求解,还是用作图法吧,比较快。
数据拟合直接用在命令窗口输入cftool,就可以根据数据和需要的阶次拟合了追问

做图法怎么弄呢,能不能给个参照的范例,感谢这个,谢谢了!

追答

他们已经给出图了,基本就是这个思路

第2个回答  2013-10-21
syms t y
y=-0.5+t-10*exp(-0.2*t)*abs(sin(sin(t)));
tic
tval=solve(y==0,t)
toc
eval(subs(y,t,tval))%检验结果

运行结果:
tval =

2.7341173220805884771375917565462

Elapsed time is 4.757776 seconds.

ans =

7.3468e-40
相似回答