500分MATLAB改VB语言或做成软件能在WINDOWS XP系统运行

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:14:44
用VB编的是最好,要求输出插值多项式程序如:”L(x)=(6+22*X-15*X^2+5*X^3)/6”

3) 求Lagrange插值多项式程序 L(x)=(6+22*X-15*X^2+5*X^3)/6

Clear[lag,xi,x,yi];
xi=Input["xi="]
yi=Input["yi="]
n=Length[xi]-1;
p=Sum[yi[[i]]*
(Product[(x-xi[[j]])/(xi[[i]]-xi[[j]]),{j,1,i-1}]*
Product[(x-xi[[j]])/(xi[[i]]-xi[[j]]),
{j,i+1,n+1}]),{i,1,n+1}];
lag[x_]=Simplify[p]
说明 本程序用于求n次Lagrange插值多项式。程序执行后,按要求通过键盘输入插值基点xi:{x0 , x1, ... , xn }和对应函数值yi:{ y0 , y1 , … , yn }后,程序即可给出对应的n次Lagrange插值多项式lag[x]。
程序中变量说明
xi:存放插值基点{x0 , x1, ... , xn }
yi: 存放对应函数值{y0 , y1 , … , yn}
lag[x]: 存放求出的n次Lagrange插值多项式Ln(x)
注:语句lag[x_]=Simplify[p]用简化形式给出对应的n次Lagrange插值多项式。
4) 例题与实验
例1.给定数据表
x 0 1 2 3
y=f(x) 1 3 5 12
用Lagrange插值法求三次插值多项式,并给出函数f(x)在x =1.4的近似值。
解: 执行Lagrange插值程序后,在输入的两个窗口中按提示分别输入

{0, 1, 2, 3}、{1, 3, 5, 12}

每次输入后用鼠标点击窗口的“OK”按扭,得如下插值函数:

所以得到三次插值多项式L3(x)=(6+

拉格朗日插值?这么简单的题目。

C 语言怎么样?
或者,matlab 编译成dll,再vb混合编程?

可惜,你的500分,我不感兴趣。
积分如浮云,
还是请楼下帮助LZ吧。

太麻烦了,懒得编,而且分不一定有,还是请楼下帮助LZ吧。

直接用Matlab编写。编译成exe比较方便。

恩 我百度知道搜索到一个与你题目一样的答案,不过是使用Matlab编写的,你只要将它编译成exe文件就好了 或者编译成dll再在VB中调用也行

http://zhidao.baidu.com/question/86879118.html

下面我给出完全按你的要求的全部代码,注意加分哦,我可是冲着那个500分来的

%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2.21
%

function [c,L,str,yi]=lagrange(x,y,xi)
%Lagrange(拉格朗日)插值
%基于N+1个点,通过P(x)=sum(y(k)*L(N,k)(x),k=0...N) 其中k=0,1...,N 计算Lagrange多项式
%
%输入参数
%-x 横坐标数据
%-y 纵坐标数据
%-xi 需要插值的x坐标
%输出参数
%-c 拉格朗日插值多项式系数
%-L 拉格朗日系数多项式
%-str 拉格朗日差值多项式表达式
%-yi