1 double f(double& d)
 2 {
 3     d*=2;
 4     return d;
 5 }
 6
 7 void f1(double&d)
 8 {
 9     d*=2;
10 }
11
12 double f2(double& d)
13 {
14     d*=2;
15     return d;
16 }

习题1

1 class f3{
2     int i;
3 public:
4     f3(int i1):i(i1){}
5     //double operator()(double d){return d*i;}//三者不能共存
6     //void operator()(double&d){d*=i;}
7     double operator()(double&d){d*=i;return d;}
8 };

习题2

  1 #include <iostream>
  2 #include <vector>
  3 #include <string>
  4 #include <list>
  5 #include<fstream>
  6 #include <set>
  7 #include<algorithm>
  8 #include<stdexcept>
  9 #include <map>
 10 #include<Matrix.h>
 11 #include<MatrixIO.h>
 12 using namespace Numeric_lib;
 13 using namespace std;
 14
 15 typedef Matrix<double,2>Matrix1;
 16 typedef Matrix<double,1>vector1;
 17
 18 void elim_with_partial_pivot(Matrix1&A,vector1&b)
 19 {
 20     const Index n=A.dim1();
 21
 22     for(Index j=0;j<n;++j)
 23     {
 24         Index pivot_row=j;
 25         for(Index k=j+1;k<n;++k)
 26             if(abs(A(k,j))>abs(A(pivot_row,j)))
 27                 pivot_row=j;
 28
 29         if(pivot_row!=j)
 30         {
 31             A.swap_rows(j,pivot_row);
 32             std::swap(b(j),b(pivot_row));
 33         }
 34         for(Index i=j+1;i<n;++i)
 35         {
 36             const double pivot=A(j,j);
 37             if(pivot==0)
 38                 cerr<<"hehe"<<endl;
 39             const double mult=A(i,j)/pivot;
 40             A[i].slice(j)=scale_and_add(A[j].slice(j),-mult,A[i].slice(j));
 41             b(i)-=mult*b(j);
 42         }
 43
 44     }
 45 }
 46
 47 void classical_elimination(Matrix1&A,vector1&b)
 48 {
 49     const Index n=A.dim1();
 50     for(Index j=0;j<n-1;++j)
 51     {
 52         const double pivot=A(j,j);
 53         if(pivot==0)
 54             throw exception();
 55
 56         for(Index i=j+1;i<n;++i)
 57         {
 58             const double mult =A(i,j)/pivot;
 59             A[i].slice(j)=scale_and_add(A[j].slice(j),-mult,A[i].slice(j));
 60             b(i)-=mult*b(j);
 61         }
 62     }
 63 }
 64
 65 vector1 back_substitution(const Matrix1&A,const vector1&b)
 66 {
 67     const Index n=A.dim1();
 68     vector1 x(n);
 69     for(Index i=n-1;i>=0;--i)
 70     {
 71         double s=b(i)-dot_product(A[i].slice(i+1),x.slice(i+1));
 72         if(double m=A(i,i))
 73             x(i)=s/m;
 74         else
 75             throw exception();
 76     }
 77     return x;
 78 }
 79
 80 vector1 classical_gaussian_elimination(Matrix1 A,vector1 b)
 81 {
 82     //classical_elimination(A,b);
 83     elim_with_partial_pivot(A,b);
 84     return back_substitution(A,b);
 85 }
 86
 87 vector1 operator*(const Matrix1&m,const vector1&u)
 88 {
 89     const Index n=m.dim1();
 90     vector1 v(n);
 91     for(Index i=0;i<n;++i)
 92         v(i)=dot_product(m[i],u);
 93     return v;
 94 }
 95
 96 void solve_random_system()
 97 {
 98     Matrix1 A(2,2);
 99     A(0,0)=1;
100     A(0,1)=0;
101     A(1,0)=0;
102     A(1,1)=1;
103     vector1 b(2);
104     b(0)=5;b(1)=6;
105
106     cout<<A<<endl<<b<<endl;
107     try{
108         vector1 x=classical_gaussian_elimination(A,b);
109         cout<<endl<<x<<endl;
110         vector1 v=A*x;
111         cout<<endl<<v<<endl;
112     }
113     catch(const exception&e)
114     {
115         cerr<<e.what()<<endl;
116     }
117 }
118
119 int main()
120 {
121     solve_random_system();
122
123     while(1);
124     return 0;
125
126 }

习题4

1 template<class T,class P>
2 Matrix<T> apply1(P p,Matrix<T,1> a)
3 {
4     Matrix<T>t1=a;
5     for(Index i=0;i<t1.size();i++)
6         t1(i)=p(t1(i));
7     return t1;
8 }

习题9

 1 template<class T>
 2 void swap_columns(Matrix<T,2>&m,Index i, Index j)
 3 {
 4     if (i == j) return;
 5
 6     T t;
 7     int k=m.dim1();
 8     for(int h=0;h<k;h++)
 9     {
10         t=m[h][i];
11         m[h][i]=m[h][j];
12         m[h][j]=t;
13     }
14 }

习题11

习题12  那个N我觉得得确定才能做= =求科普

转载于:https://www.cnblogs.com/yueba/p/4088527.html

c++程序设计原理与实践 第二十四章部分答案相关推荐

  1. JavaScript高级程序设计第四版学习--第二十四章

    title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...

  2. 第二十四章 并发编程

    第二十四章 并发编程 爱丽丝:"但是我不想进入疯狂的人群中" 猫咪:"oh,你无能为力,我们都疯了,我疯了,你也疯了" 爱丽丝:"你怎么知道我疯了&q ...

  3. 微信小程序(第二十四章)- 数据交互前置

    微信小程序(第二十四章)- 数据交互前置 讲解微信小程序前置的原因 参考文档 理解微信小程序 小程序简介 作用 提问 针对提问--uni-app介绍 小程序和普通网页开发的区别 小程序代码构成 文件个 ...

  4. 【正点原子MP157连载】第二十四章 设备树下的LED驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  5. matlab的meadian函数_24 第二十四章 时间序列模型_W

    <24 第二十四章 时间序列模型_W>由会员分享,可在线阅读,更多相关<24 第二十四章 时间序列模型_W(31页珍藏版)>请在人人文库网上搜索. 1.第二十四章时间序列模型 ...

  6. 【正点原子FPGA连载】第二十四章HDMI彩条显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  7. 【正点原子FPGA连载】 第二十四章 RTC实时时钟LCD显示实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  8. 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍

    第二十四章. X Window 配置介绍 最近升级日期:2009/08/07 在 Linux 上头的图形介面我们称之为 X Window System,简称为 X 或 X11 罗!为何称之为系统呢?这 ...

  9. ​第二十四章:皮衣大卖

    第二十四章:皮衣大卖 店铺掌柜说:"准备原材料?我这边都有原材料啊!还准备什么?" "不不不,这原材料必须本人亲自去准备."李丽质说道. "为何?&q ...

  10. 第二十四章 异常和错误处理 1异常

    // 第二十四章 异常和错误处理 //1异常 /*#include <iostream> using namespace std; class wrong{}; void error() ...

最新文章

  1. C#实现动态桌面背景图片切换
  2. Facebook有1万名员工在研发AR/VR设备 占员工总数近1/5
  3. python sendline_python Pexpect模块的使用
  4. float取小数点后几位_python Integer整型与Float浮点型操作
  5. 面试题 10.01. 合并排序的数组
  6. Error:Module production: java.lang.NoClassDefFoundError: com/android/resources/ResourceFolderType
  7. Java基础知识面试题
  8. 半监督学习:主动学习、纯半监督学习和直推学习区别和联系
  9. HC-SR04超声波测距模块的原理介绍与代码实现
  10. svg格鲁特动画代码
  11. Linux之美—windows server基础(在windows上安装server机)
  12. NBUT 1225 NEW RDSP MODE I (规律+快速幂)
  13. vue中关于$emit及propos的用法
  14. c++未定义的引用问题总结
  15. python名字的来历_你知道Python的由来吗
  16. 2020 最好的Linux网络监控工具(翻译)
  17. java单例模式_无名小仙男
  18. 第11章 只读光盘存储器
  19. 2019杭州(准)独角兽企业
  20. 18 副为程序员定制的对联,总有一副适合你...流泪

热门文章

  1. 算法设计和数据结构学习_2(常见排序算法思想)
  2. 离线电脑搭建开发环境
  3. Thymeleaf 用法
  4. Python之进程、线程、锁
  5. Django路由控制
  6. 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
  7. Codeforces 474 D. Flowers
  8. 学习python_day2
  9. 有趣的EditView为空时的抖动效果(用户名和密码)--第三方开源--ClearEditText
  10. Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)