c++程序设计原理与实践 第二十四章部分答案
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++程序设计原理与实践 第二十四章部分答案相关推荐
- JavaScript高级程序设计第四版学习--第二十四章
title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...
- 第二十四章 并发编程
第二十四章 并发编程 爱丽丝:"但是我不想进入疯狂的人群中" 猫咪:"oh,你无能为力,我们都疯了,我疯了,你也疯了" 爱丽丝:"你怎么知道我疯了&q ...
- 微信小程序(第二十四章)- 数据交互前置
微信小程序(第二十四章)- 数据交互前置 讲解微信小程序前置的原因 参考文档 理解微信小程序 小程序简介 作用 提问 针对提问--uni-app介绍 小程序和普通网页开发的区别 小程序代码构成 文件个 ...
- 【正点原子MP157连载】第二十四章 设备树下的LED驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- matlab的meadian函数_24 第二十四章 时间序列模型_W
<24 第二十四章 时间序列模型_W>由会员分享,可在线阅读,更多相关<24 第二十四章 时间序列模型_W(31页珍藏版)>请在人人文库网上搜索. 1.第二十四章时间序列模型 ...
- 【正点原子FPGA连载】第二十四章HDMI彩条显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- 【正点原子FPGA连载】 第二十四章 RTC实时时钟LCD显示实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍
第二十四章. X Window 配置介绍 最近升级日期:2009/08/07 在 Linux 上头的图形介面我们称之为 X Window System,简称为 X 或 X11 罗!为何称之为系统呢?这 ...
- 第二十四章:皮衣大卖
第二十四章:皮衣大卖 店铺掌柜说:"准备原材料?我这边都有原材料啊!还准备什么?" "不不不,这原材料必须本人亲自去准备."李丽质说道. "为何?&q ...
- 第二十四章 异常和错误处理 1异常
// 第二十四章 异常和错误处理 //1异常 /*#include <iostream> using namespace std; class wrong{}; void error() ...
最新文章
- C#实现动态桌面背景图片切换
- Facebook有1万名员工在研发AR/VR设备 占员工总数近1/5
- python sendline_python Pexpect模块的使用
- float取小数点后几位_python Integer整型与Float浮点型操作
- 面试题 10.01. 合并排序的数组
- Error:Module production: java.lang.NoClassDefFoundError: com/android/resources/ResourceFolderType
- Java基础知识面试题
- 半监督学习:主动学习、纯半监督学习和直推学习区别和联系
- HC-SR04超声波测距模块的原理介绍与代码实现
- svg格鲁特动画代码
- Linux之美—windows server基础(在windows上安装server机)
- NBUT 1225 NEW RDSP MODE I (规律+快速幂)
- vue中关于$emit及propos的用法
- c++未定义的引用问题总结
- python名字的来历_你知道Python的由来吗
- 2020 最好的Linux网络监控工具(翻译)
- java单例模式_无名小仙男
- 第11章 只读光盘存储器
- 2019杭州(准)独角兽企业
- 18 副为程序员定制的对联,总有一副适合你...流泪
热门文章
- 算法设计和数据结构学习_2(常见排序算法思想)
- 离线电脑搭建开发环境
- Thymeleaf 用法
- Python之进程、线程、锁
- Django路由控制
- 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
- Codeforces 474 D. Flowers
- 学习python_day2
- 有趣的EditView为空时的抖动效果(用户名和密码)--第三方开源--ClearEditText
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)