数值计算实验

1.计算lnx的导数(c++)

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
double ln(int x){//    double E=0.4e-4;double h=0.32;for(int i=0;i<20;i++){//不断/2.0,使h趋近于0,但注意循环次数不要太大,否则输出结果会乱码,因为计算机的精度也是有限的h/=2.0;}return log((x+h)/x)/h;}
int main()
{int m;scanf("%d",&m);double x[100];for(int i=0;i<m;i++){scanf("%lf",&x[i]);}for(int i=0;i<m;i++){printf("%.2f\n",ln(x[i]));}return 0;
}

2.调和级数求和(c++)

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
//#include<bits/stdc++.h>
using namespace std;
double sumHSDL(int h){double sum=0;for(int i=1;i<=h;i++){sum+=1.0/i;
//        cout<<sum<<endl;}
//    cout<<"sum="<<sum;return sum;
}
double sumHSDR(int h){double sum=0;
//    cout<<"h="<<h<<endl;for(int i=h;i>=1;i--){//不可以1/i,否则小数部分会被丢弃,必须1.0/isum+=1.0/i;}return sum;
}int main()
{int m;cin>>m;vector<int> k;int a;for(int i=0;i<m;i++){cin>>a;k.push_back(a);}for(int i=0;i<m;i++){//    cout<<setprecision(15)<<sumHSDL(k[i])<<" ";
//    cout<<setprecision(15)<<sumHSDR(k[i])<<endl;printf("%.14f ",sumHSDL(k[i]));printf("%.14f\n",sumHSDR(k[i]));}return 0;}

程序1.01完整的列表计算程序(Java)

import javax.sound.midi.SoundbankResource;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;import static java.lang.Math.log;public class ListCal101 {private static final int MN = 51;//数组长度private static int RN = 0;//迭代次数private static double EPS = 0.4e-4;//控制精度private static List<Double> H = new ArrayList<>(MN);private static List<Double> DTF = new ArrayList<>(MN);private static List<Double> DQF = new ArrayList<>(MN);private static List<Double> ERR = new ArrayList<>(MN);private static double X0 = 2.0;private static double H0 = 0.32;public static double deltF(double x, double h) {return Math.log((x + h) / x);}public static void operation() {int k;H.add(H0);DTF.add(deltF(X0, H.get(0)));DQF.add(DTF.get(0) / H.get(0));ERR.add(1.0);for (k = 1; k < MN; k++) {H.add(H.get(k - 1) / 2.0);DTF.add(deltF(X0, H.get(k)));DQF.add(DTF.get(k) / H.get(k));ERR.add(Math.abs(DQF.get(k) - DQF.get(k - 1)));if (ERR.get(k) < EPS)break;}RN = k + 1;}public static void showTable() {System.out.println("===============================================================");System.out.println("\t\tk\t\tH[k]\t\tDTF[K]\t\tDQF[k]\t\tERR[k]");System.out.println("---------------------------------------------------------------");for (int k = 0; k < RN; k++) {//            输出宽度,精度System.out.println(String.format("%2d \t%10.6f \t%12.8f \t%12.8f \t%12.4e", k, H.get(k), DTF.get(k), DQF.get(k), ERR.get(k)));}System.out.println("---------------------------------------------------------------");System.out.println(String.format("ANS=%12.8e", DQF.get(RN - 1)));System.out.println("===============================================================");}public static void formProblem() {System.out.println("Please Enter x0:");Scanner scanner = new Scanner(System.in);X0 = scanner.nextDouble();System.out.println("Please Enter h0:");H0 = scanner.nextDouble();}public static void main(String[] args) {ListCal101.formProblem();ListCal101.operation();ListCal101.showTable();}
}

程序2.01分析计算机输出结果的有效数值位数(Java)

import javax.swing.*;public class EffectiveNum201 {//    private static final double PI = 3.1415926535897932;
//    private static final double PI = 3.14159265358;private static final double PI = 3.14159;private static double deltx = 0.25 * PI * 1.0e-8;private static double x = 0.5 * PI - deltx;private static double y1 = Math.sin(deltx);private static double y2 = Math.cos(x);private static double y3 = Math.cos(deltx);private static double y4 = Math.sin(x);public static void display() {System.out.println(String.format("PI =%22.15e", PI));System.out.println(String.format("y1 =%22.15e", y1));System.out.println(String.format("y2 =%22.15e", y2));System.out.println(String.format("y3 =%22.15e", y3));System.out.println(String.format("y4 =%22.15e", y4));}public static void main(String[] args) {EffectiveNum201.display();}}

程序2.06三种方法对调和级数求前N项和 (Java)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class CalHS206 {private static final int MN = 12;private static final int RN = 10;private static final List<Long> N = new ArrayList<>(Arrays.asList(10L, 100L,1000L, 10000L,100000L, 110000L,1000000L, 1100000L,10000000L, 11000000L));private static List<Float> HSF = new ArrayList<>(MN);private static List<Float> HSB = new ArrayList<>(MN);private static List<Double> HSD = new ArrayList<>(MN);public static float sumHSF(long n) {long k;float y = 0.0f;for (k = 1; k <= n; k++) {y += 1.0 / k;}return y;}public static float sumHSB(long n){long k;float y=0.0f;for (k = n; k >= 1; k--) {y+=1.0/k;}return y;}public static double sumHSD(long n){long k;double y=0.0;for (k = n; k >= 1; k--) {y+=1.0/k;}return y;}public static void operation(){int k;for (k = 0; k < RN; k++) {HSF.add(sumHSF(N.get(k)));HSB.add(sumHSB(N.get(k)));HSD.add(sumHSD(N.get(k)));}}public static void showTable(){System.out.println("=====================================================");System.out.println("\t\tN[k]\t\tHSF[K]\t\tHSB[k]\t\tHSD[k]");System.out.println("-----------------------------------------------------");for (int k = 0; k < RN; k++) {//            输出宽度,精度System.out.println(String.format("%2d \t%10d \t%10.6f \t%10.6f \t%12.8f",k,N.get(k),HSF.get(k),HSB.get(k),HSD.get(k)));}System.out.println("=====================================================");}public static void main(String[] args) {CalHS206.operation();CalHS206.showTable();}
}

数值计算实验_完整的列表计算程序,计算lnx导数,3种方法计算调和级数相关推荐

  1. python怎么计算相关系数_Python三种方法计算皮尔逊相关系数

    1.皮尔逊相关系数在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlat ...

  2. 自由能计算专题3:gromacs计算自由能的7种方法案例

    前言 本教程以甲烷在水中的溶剂化自由能和配体与受体蛋白质结合自由能为入门和进阶例子对使用分子动力学模拟方法来计算自由能的常见方法给出了示例,教程不会过多讲解各种计算自由能方法原理和分析原理,关于自由能 ...

  3. 个人所得税递归函数C语言,C语言实现 计算个人所得税务2种方法

    #include #include /* 基于C语言的个人所得税计税系统 问题描述: 我国现行的个人所得税计算方法如下: 级数 全月应纳税所得额   税率(%) 1 不超过500元的    5 2 超 ...

  4. 第一章 计算思维与一种表述计算思维的框架------计算之树

    第一章 计算思维与一种表述计算思维的框架------计算之树 1.硬件 vs. 软件 2.计算思维 3.计算之树--计算思维的一种多维度观察框架 3.1计算之树的树根(技术或思想) 3.2计算之树的树 ...

  5. c语言windows获取时间,【转载】c/c++在windows下获取时间和计算时间差的几种方法总结...

    一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...

  6. 四种方法计算字符串的长度

    在这里我提供四种方法计算字符串的长度: 1.使用递归函数. 2.数数,从第一个字符开始数数,没遇到一个字符,长度加一,直到遇到"\0",停止数数. 3.使用strlen函数,使用此 ...

  7. 现代密码学3.1--定义计算安全的两种方法

    现代密码学3.1--定义计算安全的两种方法 三种安全性定义 定义计算安全的两种方法 具体方法/concrete approach 渐进方法/asyptotic approach "高效/PP ...

  8. python去重复记录_Python列表去重复项的N种方法(实例代码)

    说明 Python语言中列表(List)与其他语言的数组(Array)类似,是一种有序的集合数据结构,Python List可支持各种数据类型,长度也可动态调整,与JS中的数组或Java ArrayL ...

  9. 网络基础知识 快速计算子网掩码的2种方法

    网络基础知识 快速计算子网掩码的2种方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...

最新文章

  1. 从左边列表复制到右边列表html,JQ实现左侧列表内容移动至右侧列表出现的问题...
  2. MySQL数据类型--与MySQL零距离接触2-6数据表
  3. 前端学习(977):本地存储导读
  4. 《从缺陷中学习C/C++》导读
  5. Matlab使用rng固定随机数生成
  6. Extjs的打印解决方案
  7. centos mysql压缩文件直接恢复_CentOS下利用mysqlbinlog恢复MySQL数据库
  8. oracle 如何防止锁表,oracle锁表该如何解决
  9. Unity游戏开发图片纹理压缩方案
  10. 全桥逆变电路MOS管的关断尖峰怎么解决
  11. JAVA中数字转大写字母_java实现数字转大写
  12. 京东敌不过阿里、腾讯岌岌可危,都是因为商业模式出了问题
  13. 瑞幸咖啡新获2.5亿美元融资背后
  14. 很多情侣看了以后,不在关机
  15. python子列表_关于python:创建子列表
  16. 笔记本AutoCAD启动时闪退怎么办_AutoCAD启动时闪退怎么办?打开AutoCAD闪退怎么办?...
  17. 云计算是怎么定义的,核心技术有哪些?
  18. 我们只是虫子!我们真的是虫子吗?
  19. Hyper-V虚拟机启动出现黑屏光标闪动
  20. .net 多线程之线程取消

热门文章

  1. 【数组指针】 仅此一篇 让你深刻理解数组指针
  2. Cesium之3D拉伸显示行政区含GeoJSON数据生成过程GDAL的ogr2ogr
  3. 如何利用 RunLoop 原理去监控卡顿?
  4. java 出差淮安_这就是三线城市:在淮安出差体验当地的发展
  5. 台式计算机连接投影仪无信号,投影仪连接电脑后无信号咋解决?
  6. 三年级计算机课教学案例分析,小学三年级体育课教学案例分析
  7. ctfshow终极考核web655-web665
  8. SpringBoot项目中Druid自动登录
  9. 我的世界手机版javaui材质包_我的世界1.16.200.51手机版下载_我的世界1.16.200.51国际基岩版手机版下载 v1.16.200.51...
  10. 【java毕业设计】基于JAVA+JSP的企业合同管理系统设计与实现(毕业论文+程序源码)——企业合同管理系统