2014-09-27 5 views
0

Могу ли я что-нибудь сделать, например this в Scilab? По fsolve (...)?Scilab, сплайн-интерполяция, 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 x y - экспериментальные данные (x = [...], y = [...]) или:

xx=linspace(0,1,100)'; 
df=splin(x,y,"monotone"); 
[yyf,yy1f,yy2f]=interp(xx,x,y,df); 

Могу ли я применить fsolve к сплайну? Или нужно сделать что-то еще? Благодарю.

+1

Я не совсем уверен, что вы ищете, может быть [следующий сайт] (http://libflow.com/d/firowmv1/Polynomial_Interpolation_in_Scilab) может помочь вам. – spoorcc

+0

Данные не установлены полиномиальной моделью. Возможность дается рациональной моделью, как я написал в коде. Но сплайн - лучший. Мой вопрос касается использования в Scilab чего-то вроде этого: 'fzero (@ (xi) interp1 (x, y, xi, 'spline'), 5)' – 2014-09-28 10:20:43

ответ

0

Нечто вроде this? Использование splin?

x = [2,3,4,5,6]; 
y = [10,8,4,1,-2]; 
xi = linspace(2,6,100); 

yk = interp(xi, x, y, splin(x,y,"not_a_knot")); 
yf = interp(xi, x, y, splin(x,y,"fast")); 
ym = interp(xi, x, y, splin(x,y,"monotone")); 

plot(x,y,'o',xi,yk,'-') 
plot(x,y,'X',xi,yf,'-r') 
plot(x,y,'+',xi,yf,'-b') 

xlabel('x') 
ylabel('y') 
legend(['','Not a knot','','Fast','','Monotone']) 
Смежные вопросы