嘿,我对整个编程场景很陌生,我只是一个学习java计算机科学课程的高中生。我试图用我目前所知的方法测试我的能力,并尝试理解东西和练习。因此,我试图为某些事情制作几个数学计算器。我正在努力完成广场。所以像(2 + 4x ^ 2)^ 2将会出现(4 + 16x + 4x ^ 2)。我的问题是我无法让它完全发挥作用,而且代码有点像klanky。
import java.util.Scanner;
public class SquaringDoubles {
public static void main(String[] args) {
//declaring
Scanner input = new Scanner(System.in);
//inputs
System.out.println("Enter in the double with this format ( A + B )^2");
System.out.print("A --> ");
double A = input.nextInt();
System.out.print("B --> ");
double B = input.nextInt();
input.close();
System.out.println("You're Equation: " + A + " + " + B + "x");
//Math
//A + C + B
double A2 = Math.pow(A, 2);
double B2 = Math.pow(B, 2);
double C = 2 * (A * B);
//final
System.out.print("You answer: ");
System.out.println(A2 + " + "+ C + "x" + " + "+ B2+ "x^2");
}
}
插入是从一个公式到等价形式方程的最简单的一般方法
Y(x) = A2 + B2x + C2(x)^2
由于有三个变量(A2,B2,C2),我们需要三个方程来解决系统问题。为了获得这些方程式,我们可以简单地将三个x选择和他们计算的Y(x)放入我们想要的形式。并解决方程组。
所以从本质上讲,我们为我们选择的三个x计算Y(x),并将它们粘贴到公式中。可以采用任何(定义的)值,但有些可以使生活更轻松。
所以
X = 0是第一个候选者,因为它用x消除了所有东西,直接给你A2。
Y(0)= C2*(0)^2+B2*(0)+A2 = A2
A2 = Y(0)
x = 1:你明白了
Y(1)= C2*(1)^2+B2*(1)+A2 = C2+B2+A2
x = -1:你明白了
Y(-1)= C2*(-1)^2+B2*(-1)+A2= C2-B2+A2
消除C2:
Y(-1)+B2-A2 = Y(1) -B2 -A2
-> 2*B2=Y(1)-Y(-1)
B2=(Y(1)-Y(-1))/2
通过插入C2 + B2 + A2 = Y(1)最终计算C2:
C2=Y(1) -B2 -A2
所以一般情况下 - 对于任何给定(有效)方程式,得到A2 + B2·x + C2·x²形式:
- A2 = Y(0)
- B2 =(Y(1)-Y(-1))/ 2
- C2 = Y(1)-B2-A2 =(Y(1)+ Y(-1))/ 2-Y(0)
在你的例子中,由于正方形,Y(1)= Y(-1),所以
Y(x) = (A + B * (x)^2)^2
Y(1) = (A + B * (1)^2)^2 =(A+B)^2 // x=1
Y(-1) = (A + B * (-1)^2)^2 =(A+B)^2 // x=-1
B2 =(Y(1)-Y(-1))/2 =0
所以
C2= Y(1) -A2 = (A+B)^2 - A2
所以对于(A + B *(x)^ 2)^ 2:
- A2 = Y(0)= A ^ 2
- B2 = 0
- C2 = Y(1)-Y(0)=(A + B)^ 2-A2
码:
public static void main(String[] args) {
//declaring
Scanner input = new Scanner(System.in);
//inputs
System.out.println("Enter in the double with this format (A + B(x)^2)^2");
System.out.print("A --> ");
double A = input.nextInt();
System.out.print("B --> ");
double B = input.nextInt();
input.close();
System.out.println("You're Equation: (" + A + " + " + B + "x^2)^2");
//Math
//A + C + B
double A2 = Math.pow(A, 2);
/** old code:
*
double B2 = Math.pow(B, 2);
double C = 2 * (A * B);
*/
/** replacement : */
//Y(1)=(A + B*(1)^2)^2 = (A+B)^2
//Y(-1)=(A + B*(-1)^2)^2 = (A+B)^2
//B2 = (Y(1)-Y(-1))/2 = ((A+B)^2 -(A+B)^2)/2 = 0
double B2=0; // it is always 0 in this case
//Y(1)=(A + B*(1)^2)^2 = (A+B)^2
double C2=(A+B)*(A+B) - A2; //Y(1) -A2
//final
System.out.print("You answer: ");
System.out.println(A2 + " + " + B2 + "x" + " + " + C2 + "x^2");
}
我添加了一些评论,以显示正在发生的事情以及如何与其他方程式相似。