【发布时间】:2014-09-27 15:45:30
【问题描述】:
我可以在 Scilab 中执行类似 this 的操作吗?通过 fsolve(...)?
我认为有必要添加一些东西来改进问题。
我有一个函数定义如下:
function f=equ(x)
f=y-((-0.0235037+39.432867*x)/(1+83.598972*x-43.946883*x.^2));
endfunction
然后是这个:
i=1;
xp(1)=xD;
yp(1)=xD;
y=xD;
while (xp(i)>xi),
xp(i+1)=fsolve(0.01,equ);
yp(i+1)=R/(R+1)*xp(i+1)+xD/(R+1);
y=yp(i+1);
plot([xp(i),xp(i+1)],[yp(i),yp(i)],"r");
if (xp(i+1)>xi) plot([xp(i+1),xp(i+1)],[yp(i),yp(i+1)],"r");
end
i=i+1;
end
我想用样条拟合来改变函数:
xx=linspace(0,1,100)';
yy2=interp1(x,y,xx,"spline");
其中 x, y 是实验数据(x=[...], y=[...]),或者:
xx=linspace(0,1,100)';
df=splin(x,y,"monotone");
[yyf,yy1f,yy2f]=interp(xx,x,y,df);
我可以将 fsolve 应用于样条拟合吗?还是有必要做其他事情?谢谢。
【问题讨论】:
-
我不确定您在寻找什么,也许the following site 可以帮助您。
-
数据不是由多项式模型拟合的。正如我在代码中发布的那样,理性模型给出了一种可能性。但样条曲线是最好的。我的问题是关于在 Scilab 中使用这样的东西:
fzero(@(xi)interp1(x,y,xi,'spline'),5)