matlab插值法计算根号,怎么用matlab利用拉格朗日插值计算法的原理编写并计算函数所在节点的近似值....

.m文件

function yy=lagrange(x1,y1,xx)

%本程序为Lagrange1插值,其中x1,y1

%为插值节点和节点上的函数值,输出为插值点xx的函数值,

%xx可以是向量.

syms x

n=length(x1);

for i=1:n

t=x1;t(i)=[];L(i)=prod((x-t)./(x1(i)-t));% L向量用来存放插值基函数

end

u=sum(L.*y1);

p=simplify(u) % p是简化后的Lagrange插值函数(字符串)

yy=subs(p,x,xx);

clf

plot(x1,y1,'ro',xx,yy,'*')

x=[ 0.4 0.5 0.6 0.7 0.8];

y=[-0.916291;-0.693147;-0.510826;-0.356675;-0.223144]';

yy=lagrange(x,y,0.54)

p =

- (14363668061545223*x^4)/6755399441055744 + (229230406283396627*x^3)/33776997205278720 - (6086876668119665137*x^2)/675539944105574400 + (23595121244981107513*x)/3377699720527872000 - 186390055565518223/70368744177664000

yy =

-0.6161

再问: 我们老师给出了部分程序代码,要把这个补全,能否把这个补全呢? 不要你的那个啊 怎么那么复杂? x0=[o.4;0.5;0.6;0.7;0.8]; y0=[-0.916291;-0.693147;-0.510826;-0.356675;-0.223144]; a=0; i=1; j=1; for i=1:n p=1; n=5; for j=1:n if j~=i; q=(x-x0(i))/(x0(j)-xo(i)); end p=p*q; end a=a+p; end

再答: x0=[0.4;0.5;0.6;0.7;0.8]; y0=[-0.916291;-0.693147;-0.510826;-0.356675;-0.223144]; a=0; x=0.54 i=1; j=1; n=5; for i=1:n p=1; q=1; for j=1:n if j~=i; q=(x-x0(i))/(x0(j)-x0(i)); end p=p*q; end a=a+p*y0(i); end a x = 0.5400 >> a a = -0.6391

再问: 运行了老说 ???undefined fuction or variable 'untitled1' 运行不了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值