首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
辅导ICS4U编程、java程序语言调试、讲解java程序 辅导Python编程|讲解留学生Processing
项目预算:
开发周期:
发布时间:
要求地区:
ICS4U - Lab 1
Objective
This lab is designed to give you experience in creating and using objects.
Part 0 – TwoByTwoMatrix Class – TwoByTwoMatrix.java
You are to create a class called TwoByTwoMatrix containing fields and methods that could be used by a main method in another class to manipulate 2 by 2 matrices in various ways. A TwoByTwoMatrix is defined by the following fields:
class TwoByTwoMatrix
{
double a; // Top left element
double b; // Top right element
double c; // Bottom left element
double d; // Bottom right element
This corresponds to a matrix that looks like this: --- where a, b, c and d are real numbers.
You are to write the following constructors:
●// Creates a TwoByTwoMatrix assigning 0 to each element
public TwoByTwoMatrix ()
●// Creates a TwoByTwoMatrix with parameters giving initial
// values of the elements
public TwoByTwoMatrix (double a, double b, double c, double d)
You are to give the class functionality by writing the following instance methods:
(a)A toString method that will return a String of the TwoByTwoMatrix . For example, if the matrix is , the toString() method should return . Round to a maximum of 3 decimal places but ONLY for display purposes - meaning, do NOT change the values of the implicit matrix.
(b)A method called determinant that returns the determinant of this TwoByTwoMatrix as a double. See this video - https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices/x9e81a4f98389efdf:determinant-of-2x2-matrix/v/finding-the-determinant-of-a-2x2-matrix
(c)A method called plus that returns the sum of this TwoByTwoMatrix and another as a TwoByTwoMatrix.
(d)A method called minus that returns the difference of this TwoByTwoMatrix and another as a TwoByTwoMatrix. (implicit minus explicit)
(e)A method called multiply that returns the product of this TwoByTwoMatrix and another as a TwoByTwoMatrix. https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices/x9e81a4f98389efdf:multiplying-matrices-by-matrices/v/multiplying-a-matrix-by-a-matrix
(f)A method called scalarMultiply that takes a double parameter and scalar multiplies it with this TwoByTwoMatrix. This method should not return anything. See video: https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices/x9e81a4f98389efdf:multiplying-matrices-by-scalars/v/scalar-multiplication
(g)A boolean method called isIdentityMatrix that returns true if this matrix is an identity matrix and false otherwise. If you get the identity matrix to 3 decimal places, then you may assume that it is the identity matrix. Use the roundThreeDecimals method to round each value to 3 decimal places (but only for checking if it is the identity matrix. ie. do not change the values in the Matrix).
(h)A boolean method called isInvertible that returns true if this matrix has an inverse and false otherwise. The inverse of a 2 by 2 matrix does not exist if and only if its determinant is 0. If the determinant is 0 after rounding to 3 decimal places, you may consider that to be 0.
(i)A boolean method called isInverse that takes another TwoByTwoMatrix as a parameter and returns true if this matrix and the other matrix are inverses of one another and false otherwise. Matrices A and B are inverses of one another if AB = BA = I where I is the 2 by 2 identity matrix. If you get the identity matrix to 3 decimal places, then you may assume that it is the identity matrix.
(j)A boolean method called equals that takes another TwoByTwoMatrix as a parameter and returns true if the matrices have the same elements in the same positions and false otherwise. Since the values are doubles and could be long decimals, this method will return true if all the elements are the same to 3 decimal places. You will write a class helper method to this effect (see method (m) below)
(k)A method called inverse that returns as a new TwoByTwoMatrix the inverse of the implicit TwoByTwoMatrix if it exists and throws an exception if it does not. The inverse of a 2 by 2 matrix does not exist if and only if its determinant is 0. See FAQ note.
https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices/x9e81a4f98389efdf:finding-inverse-matrix-with-determinant/v/inverse-of-a-2x2-matrix
(l)A method called transpose that returns as a new TwoByTwoMatrix the transpose of the implicit TwoByTwoMatrix.
https://www.youtube.com/watch?v=TZrKrNVhbjI
You must write the following class method:
(m)A method called roundThreeDecimals that takes a double parameter and returns the input rounded to three decimal places also as a double.
You should test your program thoroughly and systematically using a main method in another class. Your main method will not be marked. Be sure that your methods are titled exactly as written in this document as your methods will be tested with my own main method. Marks will be deducted if I need to change your program in order to make it work with mine.
For Submission Procedure and Grading Rubric, Please Check online course website.
Frequently Asked Questions
Question:
G) For the isIdentityMatrix question I don't understand the decimal part "If you get the identity matrix to 3 decimal places, then you may assume that it is the identity matrix. Use the roundThreeDecimals method to round each value to 3 decimal places (but only for checking if it is the identity matrix. ie. do not change the values in the Matrix)."
Answer:
For example, let's say I send your method the matrix
[1 0]
[0 1]
Your method should return true since this is the identity matrix.
If I send your method the matrix
[1 2]
[3 4]
Your method should return false as this is not the identity matrix.
Now, what if I send your method the matrix
[1.0003 0.0001]
[0.0001 1.00002]
If you don't round these values, your method will return false because you are comparing with exactly 1, 0, 0 1. But in this case, this is "close enough" to be the identity matrix. So in this case, the rule is to round each value to 3 decimal places. Rounded to 3 decimal places the first value 1.0003 will round to 1.000 and then when you compare to 1, you would get a true for that component. Same with the other 3 components once rounded.
In other words, this last matrix should cause your method to return true. This same idea of “rounding before checking” should be used in the equals() method as well - part j.
Question:
How do I throw an exception if the inverse Matrix doesn’t exist? This is for part k)
Answer:
If the inverse of the given matrix does not exist, i.e. the determinant is 0, then you can throw an exception like this:
throw new RuntimeException(“Inverse Matrix does not exist”);
This will allow your method to compile because if you throw an Exception, you don’t have to return a TwoByTwoMatrix in this situation.
Also if this line executes, your program will immediately stop running and display this error (much like an ArrayIndexOutOfBoundsException)
Question:
For the inverse method, part k, would a determinant of 0.00001 be considered to be 0 for the purposes of this method?
Answer:
Yes. Round the determinant to three decimal places and if you get 0, you can assume the inverse does not exist and then throw an exception.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
data程序代写、代做c/c++编程语...
2024-05-17
data程序代写、代做python编程...
2024-05-17
program代做、c/c++,python程...
2024-05-17
代写math 3333 3.0 - winter 2...
2024-05-17
代做seng6110 programming ass...
2024-05-17
代写seng6110 object oriented...
2024-05-17
代写comp828: statistical pro...
2024-05-17
代做culture and society调试数...
2024-05-17
代做comp 4911 winter 2024 as...
2024-05-17
代做lh physical iiib / 03 33...
2024-05-17
代做3032ict big data analyti...
2024-05-17
代写comp4702 report代写留学生...
2024-05-17
代写fin2020 hw6代写c/c++编程
2024-05-17
热点标签
fit2004
fit3152
mec208
econ20120
cpt304
econ2101
econ0051
engi4547
econ1048
eengm2510
fit1008
7033mkt
ec2066
cct380h5f
man00019m
mech265001
fin2020
fit9137
n1542
csc4140
math6119
comp1710
fina864
csys5020
busi4412
math5007
2702ict
dts204tc
comp2003j
cosc2673
ecmt2150
bff3121–
comu7000
stat6118
comp814
acc202
ematm0067
bit233
ecs776p
600543
bpln0025
comp3400
econ7030
159.342 ‐ operating
mang6134
math1005/math6005
geog5404m
comp1710/6780
infs 2042
inf6028
bman30702
math0002
msci242l
mgt11001
com00177m
bman71282
fit2001
cpt210
159.341
econ7310
comp3221
comp10002
cpt206
ecmt1010
finm081
econ2005
cpt202
fit3094
socs0030
data7201
data2x01
mn-3507
mat246h1
ib2d90
ib3j80
acc207
comp90007
compx518-24a
fit1050
info1111
acct2201
buad801
compsci369
cse 332s
info1110
math1033
scie1000
eeee2057
math4063
cmt219
econ5074
eng5009
csse2310/csse7231
ec333
econ0001
cpt204
elec4630
ma117
dts104tc
comp2017
640481
csit128
eco000109m
finc5090
ggr202h5f
nbs8295
4ssmn902
chc6171
dsa1002
ebu6304
comp1021
csci-ua.202
com6511
ma416
mec206
iom209
bism7202
idepg001
cpt106
comp1212
ecom209
math1062
mn-3526
fnce3000
fmhu5002
psyc10003
fina2222
be631-6-sp/1
finc2011
37989
5aaob204
citx1401
econ0028
bsan3204
comp9123
cmt218
itp122
qbus6820
ecmt1020
bus0117
soft3202/comp9202
basc0057
mecm30013
aem4060
acb1120
comp2123
econ2151
ecmt6006
inmr77
com 5140
ocmp5328
comp1039
had7002h
cmt309
asb-3715
elec373
cpt204-2324
be631-6-sp
econ3016
mast10007
buss6002
comp4403
comp30023
finm1416
csc-30002
6qqmn971
fin668
mnfg309
inft2031
cits1402
comp2011
eecs 3221
ebu4201
ct60a9600
com336
8pro102
econ7300
comp3425
comp8410
comp222
finm8007
comp2006
comp26020
comp1721
eeen3007j
cis432
csci251
comp5125m
com398sust
finm7405
econ7021
fin600
infs4205/7205
mktg2510-
32022
mth6158
comp328
finn41615
2024
mec302
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!