我的任务是将一个分段多项式函数积分,分段函数是三次样条函数插值的结果程序如下:function f=y(i);%把矩阵中的多项式系数阵变成多项式%x(i,:)是分段函数每一段的系数按降幂排列x(1,:)=[-0.0502 0.2957 -0.3633 0.0243];x(2,:)=[-0.0502 0.2927 -0.3515 0.0171];x(3,:)=[-0.0600 0.2897 -0.3398 0.0102];x(4,:)=[-0.0658 0.2861 -0.3283 0.0035];x(5,:)=[-0.0714 0.2822 -0.3170 -0.0029];x(6,:)=[-0.0760 0.2779 -0.3058 -0.0092];x(7,:)=[-0.0799 0.2733 -0.2947 -0.0152];x(8,:)=[-0.0832 0.2685 -0.2839 -0.0210];x(9,:)=[-0.0857 0.2635 -0.2732 -0.0265];x(10,:)=[-0.0878 0.2584 -0.2628 -0.0319];x(11,:)=[ -0.0893 0.2531 -0.2526 -0.0370];x(12,:)=[-0.0904 0.2478 -0.2426 -0.0420];x(13,:)=[-0.0911 0.2423 -0.2328 -0.0467];x(14,:)=[-0.0915 0.2369 -0.2232 -0.0513];x(15,:)=[-0.0915 0.2314 -0.2138 -0.0557];x(16,:)=[-0.0913 0.2259 -0.2047 -0.0599];x(17,:)=[-0.0909 0.2204 -0.1957 -0.0639];x(18,:)=[-0.0902 0.2150 -0.1870 -0.0677];x(19,:)=[-0.0893 0.2095 -0.1785 -0.0713];x(20,:)=[-0.0883 0.2042 -0.1703 -0.0748];x(21,:)=[-0.0872 0.1989 -0.1622 -0.0782];x(22,:)=[-0.0859 0.1936 -0.1544 -0.0813];x(23,:)=[-0.0847 0.1885 -0.1467 -0.0843];x(24,:)=[-0.0829 0.1834 -0.1393 -0.0872];x(25,:)=[-0.0829 0.1784 -0.1320 -0.0899];for i=1:1:25; y(i)=poly2sym(x(i,:),'x');endfunction [r]=jifen()%引用前面子函数中的函数表达式进行积分a=1.5;r=0;b=0;for i=1:1:25; fx='y(i)';%fx的表达式从子函数中调用,这句总觉得有毛病! b=a+0.02i; r=r+quad(fx,a,b); b=a;endmatlab提示的错误如下:??? Error using ==> inlineevalError in inline expression ==> y(i)??? One or more output arguments not assigned during call to 'C:/MATLAB7/work/y.m (y)'.Error in ==> inline.subsref at 25 INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);Error in ==> quad at 62y = f(x, varargin{:});Error in ==> jifen at 8 r=r+quad(fx,a,b);希望高手给我指点迷津!谢谢!
二楼!再次感谢你!可是算出来的结果还是不对!我希望的是,把系数矩阵的每一行四个取出来构成三次多项式的四个系数,但是按照这个程序好像只能是把全部25*4的矩阵都抽出来构成多项式了!就是我希望在函数y(i)中是每一行四个取出来,不是一次性全部取出来!麻烦你拉!
|