
正文
java插值用什么代码 java写插件
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java往数据库里插值的问题 急用
字段right是mysql的保留字,尽量不要使用这些保留字作为字段名.
把right改成其他名字试试吧
相关问答
Q1: 用Java实现牛顿插值 求大神帮下
class Lagrange
{
public static double esitimate(double x,int n,double k[][])
{
double y=0;
int i;
int j;
double w;
double w1;
for(i=0;in;i++)
{
w=1;
w1=1;
for(j=0;jn;j++)
{
if(j==i)
continue;
else
{
w=w*(x-k[j][0]);
w1=w1*(k[i][0]-k[j][0]);
}
}
//System.out.printf("y=%f,w=%f,w1=%f\n",k[i][1],w,w1);
y=y+k[i][1]*w/w1;
}
return y;
}
}
class Newton
{
double ad[][];//均差表
int n;
Newton(int n,double k[][])
{
int i,j;
this.n=n;
ad=new double[n][n];
for(i=0;in;i++)
ad[i][0]=k[i][1];
for(i=1;in;i++)
ad[i][1]=(ad[i][0]-ad[i-1][0])/(k[i][0]-k[i-1][0]);
for(i=2;in;i++)
for(j=i;jn;j++)
{
ad[j][i]=(ad[j][i-1]-ad[j-1][i-1])/(k[j][0]-k[j-i][0]);
//System.out.printf("%f %f %f %f\n", ad[j][i-1],ad[j-1][i-1],k[j][0],k[j-i][0]);
}
show();
}
void update(double x,double y,double k[][])
{
int i,j;
n++;
k[n-1][0]=x;
k[n-1][1]=y;
double temp[][]=new double[n][n];
for(i=0;in-1;i++)
for(j=0;j=i;j++)
temp[i][j]=ad[i][j];
temp[n-1][0]=y;
for(i=1;in;i++)
temp[n-1][i]=(temp[n-1][i-1]-temp[n-2][i-1])/(x-k[n-1-i][0]);
ad=temp;
show();
}
void show()
{
int i,j;
System.out.println("均差计算可列均差表如下:");
for(i=0;in;i++)
{
for(j=0;j=i;j++)
System.out.printf("%f ", ad[i][j]);
System.out.printf("\n");
}
System.out.println("*******************************************");
}
double esitimate(double x,double k[][])
{
int i,j;
double y=ad[0][0];
double w;
for(i=1;in;i++)
{
w=ad[i][i];
for(j=0;ji;j++)
w=w*(x-k[j][0]);
y=y+w;
}
return y;
}
}
public class interpolate
{
public static void main(String args[])
{
int n=20;
double k[][]=new double[n][2];
int i;
n=3;
k[0][0]=0.32;
k[0][1]=0.314567;
k[1][0]=0.34;
k[1][1]=0.333487;
k[2][0]=0.36;
k[2][1]=0.352274;
System.out.println("拉格朗日插值的节点:");
for(i=0;in;i++)
System.out.printf("%f %f\n", k[i][0],k[i][1]);
System.out.println("估算0.3367处的函数值:");
n=2;
System.out.printf("采用%d次插值得:%f\n",n-1,Lagrange.esitimate(0.3367,n,k));
n=3;
System.out.printf("采用%d次插值得:%f\n",n-1,Lagrange.esitimate(0.3367,n,k));
System.out.println("*******************************************");
k[0][0]=0.4;
k[0][1]=0.41075;
k[1][0]=0.55;
k[1][1]=0.57815;
k[2][0]=0.65;
k[2][1]=0.69675;
k[3][0]=0.80;
k[3][1]=0.88811;
k[4][0]=0.90;
k[4][1]=1.02652;
k[5][0]=1.05;
k[5][1]=1.25382;
Newton nt=new Newton(3,k);
nt.update(0.80, 0.88811, k);
nt.update(0.90, 1.02652, k);
nt.update(1.05, 1.25382, k);
nt=new Newton(5,k);
System.out.println("估算0.596处的函数值:");
System.out.printf("%f",nt.esitimate(0.596, k));
}
}
Q2: hermite插值的Java代码 需要生成它的字符串形式的多项式。
function f = Hermite(x,y,y_1,x0)
syms t;
f = 0.0;
if(length(x) == length(y))
if(length(y) == length(y_1))
n = length(x);
else
disp('y和y的导数的维数不相等!');
return;
end
else
disp('x和y的维数不相等!');
return;
end
for i=1:n
h = 1.0;
a = 0.0;
for j=1:n
if( j ~= i)
h = h*(t-x(j))^2/((x(i)-x(j))^2);
a = a + 1/(x(i)-x(j));
end
end
f = f + h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i));
if(i==n)
if(nargin == 4)
f = subs(f,'t',x0);
else
f = vpa(f,6);
end
end
end
自己分析吧
关于java插值用什么代码和java写插件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






