Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import scala.math._
- class Rungegokutty {
- var x:Array[Double] = new Array[Double](11)
- var y:Array[Double] = new Array[Double](11)
- var k:Array[Array[Double]] = Array.ofDim(11,4)
- var mk:Array[Array[Double]] = Array.ofDim(11,4)
- var suma:Array[Double] = new Array[Double](11)
- var h:Double = 0
- def func(x:Double,y:Double):Double = {
- h*(y+cos(x/Pi))
- }
- def rK():Unit = {
- for(i<-0 until 11){
- suma(i) = 0
- k(i)(0) = func(x(i),y(i))
- mk(i)(0) = k(i)(0)
- k(i)(1) = func(x(i) + 0.5 * h, y(i) + 0.5 * k(i)(0))
- mk(i)(1) = 2*k(i)(1)
- k(i)(2) = func(x(i)+0.5*h,y(i)+0.5*k(i)(1))
- mk(i)(2) = 2*k(i)(2)
- k(i)(3) = func(x(i)+h,y(i)+0.5*k(i)(2))
- mk(i)(3) = k(i)(3)
- suma(i) = (mk(i)(0)+mk(i)(1)+mk(i)(2)+mk(i)(3))/6
- if(i<10){
- x(i+1) = x(i)+h
- y(i+1) = y(i)+suma(i)
- }
- println("y = "+y(i)+" x = "+f"${x.apply(i)}%1.1f")
- }
- }
- }
- object Rungegokutty extends App {
- val r = new Rungegokutty()
- r.h = 0.1
- r.x(0) = 1
- r.y(0)= 5.9
- r.rK()
- }
- ------------wynik---------------
- y = 5.9 x = 1,0
- y = 6.613860698158842 x = 1,1
- y = 7.401034753539003 x = 1,2
- y = 8.269069623003322 x = 1,3
- y = 9.2263011687448 x = 1,4
- y = 10.281935982729046 x = 1,5
- y = 11.446142295692338 x = 1,6
- y = 12.730150365912246 x = 1,7
- y = 14.14636333633467 x = 1,8
- y = 15.70847965174595 x = 1,9
- y = 17.431628241536647 x = 2,0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement