求多项式P(x)=anxn+an-1xn-1+…+a1x+a0的值的函数式M文件 用matlab来做,怎么做啊

2025-03-11 01:29:33
推荐回答(3个)
回答1:

首先,多项式是动态的,所以这必须是matlab的输入项;
其次,多项式的matlab表达要清楚,是将多项式降幂排列后提取其系数来表示该多项式的-n次多项式用n+1维向量表示;比如多项式 3*x^2 + 5 在matlab中的表示为 [3 0 5];
最后,多项式函数值的matlab求法要明白,就是命令polyval。
综合上述,M文件如下:
function val = fpolyval(p,x)
% 函数 fpolyval 功能:求多项式 p 在 x 处的函数值 val.
% 输入项 p 是多项式按降幂排列后的系数;
val = polyval(p,x);

比如:求3*x^2 + 5在x=1,2处的值
>>p=[3 0 5];
>>x=[1 2];
>>val=fpolyval(p,x)
val =
8 17

回答2:

直接求啊,不需要编函数文件的,polyval,subs这两个命令都可以的
区别:polyval只能求多项式;subs适用于任何函数
例子:
求y=x^3+2x^2+x+1在x=1处的函数值
命令:p=[1 2 1 1],polyval(p,1)
也可以用subs
命令:syms x;y=x^3+2*x^2+x+1;subs(y,1)
注意求y=exp(x)/x在x=1处的函数值则只能用subs
具体用法可以help polyval和help subs

回答3:

function p=sss(n)
n=input('输入n的值n=')
q1=randn(1,n)
polyval(q1,2)
end
如果这个程序你认为有什么问题可以再说。randn是随机生成向量作为多项式的系数。
期待这就是满意答案哦~~~