首页
网站开发
桌面应用
管理软件
微信开发
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
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!