Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.05.2022, 05:49   #1
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию ПЕРЕВЕСТИ С JAVA НА C++.

Код:
package com.company;

public class Logic {

	public double [][] div_sub(double [] x, double [] f, double [][] y, int n) {		// вычисление разделённых разностей функции
		
		for(int m = 1; m < n; m++) {
			for(int k = 0; k < n-m; k++) {
				if(m == 1) y[k][m] = (f[k+1] - f[k]) / (x[k+1]-x[k]);
				else y[k][m] = (y[k+1][m-1] - y[k][m-1]) / (x[k+m] - x[k]);
			}
		}
		return y;
	}
	
	public double Lagrange(double X, double [] x, double [] f, double [][] y, int n) {	// вычисление значения полинома Лагранжа
		
		double Lagrange = 0;
		double denominator = 1;															// знаменатель
		double numerator = 1;															// числитель
		
		for(int k=0; k<n; k++) {
			numerator = 1;
			for(int i=0; i<n; i++) {
				if(i != k) numerator *= (X-x[i]);
			}
			denominator = 1;
			for(int j=0; j<n; j++) {
				if(j != k) denominator *= (x[k] - x[j]);
			}
			Lagrange += f[k] * numerator/denominator;
		}
		
		return Lagrange;
	}
	
	public double NewtonNF(double X, double [] x, double [] f, double [][] y, int n) {	// вычисление значения полинома Ньютона NF
		
		double Newton = f[0];
		double prod = 1;
		
		for(int k=1; k<n; k++) {
			prod *= (X - x[k-1]);
			Newton += y[0][k] * prod;
		}
		return Newton;
	}
	
	public double NewtonNB(double X, double [] x, double [] f, double [][] y, int n) {	// вычисление значения полинома Ньютона NB
		
		double Newton = f[n-1];
		double prod = 1;
		
		for(int k=1; k<n; k++) {
			prod *= (X - x[n-k]);
			Newton += y[n-k-1][k] * prod;
		}
		return Newton;
	}

	public void print_matr(double [][] y, int n) {										// вывод матрицы в консоль
		
		for(int i=0; i<n; i++) {
			for(int j=0; j<n; j++) {
				if(j>0 && (n%j-1) == 0)
					System.out.println(String.format("%.3f", y[i][j]) + "\t");
				else
					System.out.print(String.format("%.3f", y[i][j]) + "\t");
			}
		}
	}
	
}
package com.company;

public class Main {

	public static void main(String[] args) {
		
		int n = 6;
		
		double X = 0;
		double [] x = new double[n];
		double [] f = new double[n];
		double [][] y = new double[n][n];
		
		Logic L = new Logic();

		X = -0.2;
		
		x[0] = -1.6;
		x[1] = -0.8;
		x[2] = 0.9;package com.company;

public class Logic {

	public double [][] div_sub(double [] x, double [] f, double [][] y, int n) {		// вычисление разделённых разностей функции
		
		for(int m = 1; m < n; m++) {
			for(int k = 0; k < n-m; k++) {
				if(m == 1) y[k][m] = (f[k+1] - f[k]) / (x[k+1]-x[k]);
				else y[k][m] = (y[k+1][m-1] - y[k][m-1]) / (x[k+m] - x[k]);
			}
		}
		return y;
	}
	
	public double Lagrange(double X, double [] x, double [] f, double [][] y, int n) {	// вычисление значения полинома Лагранжа
		
		double Lagrange = 0;
		double denominator = 1;															// знаменатель
		double numerator = 1;															// числитель
		
		for(int k=0; k<n; k++) {
			numerator = 1;
			for(int i=0; i<n; i++) {
				if(i != k) numerator *= (X-x[i]);
			}
			denominator = 1;
			for(int j=0; j<n; j++) {
				if(j != k) denominator *= (x[k] - x[j]);
			}
			Lagrange += f[k] * numerator/denominator;
		}
		
		return Lagrange;
	}
	
	public double NewtonNF(double X, double [] x, double [] f, double [][] y, int n) {	// вычисление значения полинома Ньютона NF
		
		double Newton = f[0];
		double prod = 1;
		
		for(int k=1; k<n; k++) {
			prod *= (X - x[k-1]);
			Newton += y[0][k] * prod;
		}
		return Newton;
	}
	
	public double NewtonNB(double X, double [] x, double [] f, double [][] y, int n) {	// вычисление значения полинома Ньютона NB
		
		double Newton = f[n-1];
		double prod = 1;
		
		for(int k=1; k<n; k++) {
			prod *= (X - x[n-k]);
			Newton += y[n-k-1][k] * prod;
		}
		return Newton;
	}

	public void print_matr(double [][] y, int n) {										// вывод матрицы в консоль
		
		for(int i=0; i<n; i++) {
			for(int j=0; j<n; j++) {
				if(j>0 && (n%j-1) == 0)
					System.out.println(String.format("%.3f", y[i][j]) + "\t");
				else
					System.out.print(String.format("%.3f", y[i][j]) + "\t");
			}
		}
	}
	
}
package com.company;

public class Main {

	public static void main(String[] args) {
		
		int n = 6;
		
		double X = 0;
		double [] x = new double[n];
		double [] f = new double[n];
		double [][] y = new double[n][n];
		
		Logic L = new Logic();

		X = -0.2;
		
		x[0] = -1.6;
		x[1] = -0.8;
		x[2] = 0.9;
		x[3] = 1.8;
		x[4] = 1.9;
		x[5] = 2.8;
		
		f[0] = 3.56789;
		f[1] = -4.12345;
		f[2] = 11.65432;
		f[3] = 29.45678;
		f[4] = 26.76543;
		f[5] = 6.67890;
		
		y = L.div_sub(x,f,y,n);						// вычисление разделённых разностей функции
		L.print_matr(y,n);							// вывод матрицы разделённых разностей
		
													// вычисление и вывод значения полинома Ньютона
		System.out.println("\nПолином Лагранжа= " + L.Lagrange(X, x, f, y, n));
		System.out.println("Полином Ньютона NF= " + L.NewtonNF(X, x, f, y, n));
		System.out.println("Полином Ньютона NB= " + L.NewtonNB(X, x, f, y, n));
	}

}
Изображения
Тип файла: png Снимок.PNG6.PNG (77.8 Кб, 0 просмотров)
REZR вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(Java) Перевести из while в do while и for Levi0n Помощь студентам 0 08.11.2021 09:34
Перевести в программу на Java Настя812 Помощь студентам 1 21.11.2015 14:24
Перевести код из Java в Delphi D_E_N Фриланс 2 07.01.2014 20:17
Перевести с С++ в java luffi Помощь студентам 0 29.03.2012 12:24
Код Java перевести в Delphi. Rin Общие вопросы по Java, Java SE, Kotlin 2 20.03.2012 01:32