加权差值的java代码,加权差值的java代码是多少

用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));

}

}

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编程,填写下面的代码

class NoLowerLetterException extends Exception {

public NoLowerLetterException(String msg) {

super(msg);

}

}

class NoDigitException extends Exception {

public NoDigitException(String msg) {

super(msg);

}

}

class People {

void printLetter(char c) {

if (c = 'a' c = 'z') {

System.out.println(c);

} else {

try {

throw new NoLowerLetterException(String.valueOf(c));

} catch (NoLowerLetterException e) {

e.printStackTrace();

}

}

}

void printDigit(char c) {

if (c = '0' c = '9') {

System.out.println(c);

} else {

try {

throw new NoDigitException(String.valueOf(c));

} catch (NoDigitException e) {

e.printStackTrace();

}

}

}

}

public class ExceptionExample {

public static void main(String args[]) {

People people = new People();

for (int i = 0; i 128; i++) {

// 【代码5】

// //将i转换为char类型,执行people.printLetter()方法,如果出现异常则捕获,并输出异常的错误信息!

people.printLetter((char) i);

}

for (int i = 0; i 128; i++) {

// 【代码6】 //将i转换为char类型,执行people. printDigit

// ()方法,如果出现异常则捕获,并输出异常的错误信息!

people.printDigit((char) i);

}

}

}

JAVA问题,求 代码1~代码8 并解释下代码2赋值的问题和代码4和代码5的调用问题

代码1:int static b;

代码2:this.a = 10;

代码3:Ca.b = 10;

代码4:m1();

代码5:new Ca().m2();

代码6:System.out.println(Ca.b);

代码7:System.out.println(s1.b);

代码8:System.out.println(s2.b);

代码2赋值问题,在静态的m1()方法中,不能直接调用非静态的变量,可以调用自身this对象。

在静态的方法中,可以直接调用静态的变量和方法,其它的要实例后再调用。希望回答对你有所帮助。

求这段JAVA程序代码

//Example.java

class A{

float a;

static float b;

void setA(float a ){

this.a = a;

}

void setB(float b){

this.b = b;

}

float getA() {

return a;

}

float getB() {

return b;

}

void inputA() {

System.out.println(a);

}

static void inputB() {

System.out.println(b);

}

}

public class Example {

public static void main (String args[]){

/*代码5] //通过类名操作类变量b,并赋值100

[代码6] //通过类名调用方法inputB()

A cat=new A();

A dog=new A();

[代码7] //cat调用方法setA(int a)将cat的成员a的值设置为200

[代码8] //cat调用方法setB(int b)将cat的成员b的值设置为400

[代码9] //dog调用方法setA(int a)将dog的成员a的值设置为300

[代码10] //dog调用方法setB(int b)将dog的成员b的值设置为800

[代码11] //cat调用方法inputA()

[代码12] //cat调用方法inputB()

[代码13] //dog调用方法inputA()

[代码14] //dog调用方法inputB()*/

A.b = 100;

A.inputB();

A cat = new A();

A dog = new A();

cat.setA(200);

cat.setB(300);

dog.setA(300);

dog.setB(800);

cat.inputA();

cat.inputB();

dog.inputA();

dog.inputB();

}

}

有一个要说明的是,setA()与setB()的形参是浮点型的,所以如楼上所说,楼主代码7到代码10的形参设错了。但200,400,300,800是可以的。只是将int改为float.


分享文章:加权差值的java代码,加权差值的java代码是多少
URL链接:http://ybzwz.com/article/dsgipdh.html