package sem4;
import java.util.Scanner;
public class Errors02 {
static double roundOff(double no,double figure){
double notemp=no;
int ex;
int x=0,y=0;
double y2;
int count=0;
while(notemp>1){
count++;
notemp/=10;
}
while(count>figure){
count--;
no/=10;
x++;
}
y=(int)no;
while(x>0){
y*=10;
x--;
}
no-=y;
while(count<figure){
no*=10;
y*=10;
int t=(int) no;
y+=t%10;
count++;
x++;
}
y2=y;
while(x>0){
y2=y2*(1/10.0);
x--;
}
return y2;
}
public double sum(double arr[],int r){
int len=arr.length;
double sum=0.0;
for(int i=0;i<len;i++){
Errors02.roundOff(arr[i], r);
sum+=arr[i];
}
return sum;
}
public static double product(double arr[],int r){
int len=arr.length;
double prod=1;
for(int i=0;i<len;i++){
Errors02.roundOff(arr[i], r);
prod*=arr[i];
}
return prod;
}
public static double error(int n){
double e1=Math.pow(10,n);
double e2=0.5*1.0/e1;
return e2;
}
public static double relative_error(double x,int n){
double e1=Math.pow(10,n);
double e2=0.5*1.0/e1;
return e2/x;
}
public static double abssquarerootssum(double arr[]){
double sum=0,e=0;
for(int i=0;i<arr.length;i++){
arr[i]=Math.sqrt(arr[i]);
roundOff(arr[i],4);
sum+=arr[i];
e+=Errors02.error(4);
}
return sum;
}
public static double relsquarerootssum(double arr[]){
double sum=0;
for(int i=0;i<arr.length;i++){
arr[i]=Math.sqrt(arr[i]);
roundOff(arr[i],4);
sum+=arr[i];
}
sum=Errors02.relative_error(sum, 3);
return sum;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
/*Rounding off nos and Calculating Relative,percentage and Absolute errors
double round;
System.out.println("Enter the no ");
double no=sc.nextDouble();
System.out.println("Enter the round off figure ");
double figure=sc.nextDouble();
round=roundOff(no,figure);
Errors e1=new Errors();
System.out.println("Rounded no is" + round);
System.out.println(e1.calcAbsError(no, round));
System.out.println(e1.calcRelativeError(no, round));
System.out.println(e1.calcPercentageError(no, round)+"%");*/
/*Calculating the best approximation
double a1,a2,a3,true_val;
Errors e2=new Errors();
System.out.println("Enter true value");
true_val=sc.nextDouble();
System.out.println("Enter approximation 1");
a1=sc.nextDouble();
System.out.println("Enter approximation 2");
a2=sc.nextDouble();
System.out.println("Enter approximation 3");
a3=sc.nextDouble();
double best;
if(e2.calcAbsError(true_val, a1)< e2.calcAbsError(true_val, a2)){
if( e2.calcAbsError(true_val, a1)<e2.calcAbsError(true_val, a3))
best=a1;
else
best=a3;
}
else
if( e2.calcAbsError(true_val, a2)< e2.calcAbsError(true_val, a3))
best=a2;
else
best=a3;
System.out.println("Best Approximation "+best);*/
/*To Find Truncation Error
double x=1.0/4.0;
double true_val=Math.pow(Math.E, x);
double approx_val=1+x+(Math.pow(x,2)/2);
Errors e3=new Errors();
System.out.println(e3.calcAbsError(true_val, approx_val));*/
/*Finding Sum using 3 digit Rounding
double x[]=new double[6];
double approx_val=0.0;
x[0]=1/3.0;
x[1]=1/9.0;
x[2]=1/27.0;
x[3]=1/81.0;
x[4]=1/243.0;
x[5]=1/729.0;
for(int i=0;i<6;i++){
x[i]=Errors02.roundOff(x[i], 3);
approx_val+=x[i];
}
System.out.println("Sum= "+approx_val);*/
/*EX_6:Calculating Sum
double nos[]={0.1563,21.34,0.000346,102.3,7.15,156.4,0.0312};
Errors02 e6=new Errors02();
System.out.printf( "%.2f",e6.sum(nos, 2));*/
/*EX-7 FINDING PRODUCT8
double nos[]={3.6,27.368};
double x=(Errors02.product(nos, 1));
System.out.printf("%.1f",x);*/
/*EX-8 RELATIVE ERROR
double x=0.51;
System.out.println(Errors02.relative_error(x, 2));*/
/* EX-9,10 RELATIVE ERROR
double x;
int r;
//x=4.32;
//r=2;
x=3.1416;
r=4;
System.out.println(Errors02.relative_error(x, r));*/
/*Ex-10 abs n relative errors of Sum of aquareroots
double s[]={3,5,7};
System.out.println(Errors02.abssquarerootssum(s));
System.out.println(Errors02.relsquarerootssum(s));*/
}
}
Comments
Post a Comment