simple算法求解过程 过程.

非线性求解过程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
非线性求解过程
a​n​s​y​s​内​部​培​训​教​材
大小:234.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢详细过程...求解..._百度知道
(1)过A作CB的垂线交BC于D,则四边形AOCD为矩形,∴AD=OC=8,CD=OA=2,∴BD=6,在Rt△ADB中,用勾股定律容易求出AB=10;(2)分三种情况:
(a)若AB、AP为腰,取AP=AB=10即可,则OP=12;
(b)若AB、BP为腰,过B作BE垂直AP于E,则AE=BD=6,所以AP=2AE=12,所以OP=14;
(c)若AB为底,过P作PF垂直AB于F,,易证Rt△PAF∽Rt△ABD,用相似比可求出AP=25/3∴OP=31/3(3)题目看不明白。
其他类似问题
5人觉得有用
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁3316人阅读
【题目】求f=1-1/2!+1/3!-...+1/9!
【本文结构】
  看题目,有点难度(相对而言,熟悉编程后,这只是一个非常典型的问题)。将我带着大家把这个问题分解一下,由易到难解出来。
  我们要经历的过程是:
  (一)求f=1+2+...+9【很简单的问题】
  (二)求f=1-2+3-4+...+9【在(一)的基础上,学习如何一正一负地累加】
  (三)求f=1-1/2+1/3-1/4+...+1/9【在(二)的基础上,被加数成了自然数的倒数】
  (四)求f=1!-2!+3!-4!+...+9!【在(二)的基础上,被加数成了自然数的阶乘】
  (五)求f=1-1/2!+1/3!-...+1/9!【运用(三)和(四)的方法就能出来了】
  (六)用哪种循环语句其实并不是大事,本题以上的部分而言,for循环还是最好的
  (七)求f=1-1/2!+1/3!-1/4!+...,要求精度达到0.0000001【对题目的扩充,在数值求解时,常常并不限定累加的项数,而是用精度控制】
  如果这些题目对你目前已经不存在问题,体会这个化简的过程就可以关闭页面了。要学会这种办法,让自己由简而繁地工作。
【相关练习题(加*者在文后给了参考例程)】
对于任何正整数n,求1+n+n*n+n*n*n。不断从键盘中输入实数,边输入边累加,直到它们的和超过1000时为止。计算正整数n以内(包括n)的奇数之和及偶数之和。已知本金为a,年利率为x%,试求存入银行多少年后本、利和翻一番。(提示:用s表示本、利合计,循环要表达的是“当(s&2*a)时,增加1年,计算下一年末的本、利合计”)求任一长整数n的各位数字之和(提示:本题在每次循环中应该提取出某一位数并累加,即,先分离出个位累加,将n缩小10倍,重复操作直至n=0时为止。 )求任一长整数n的所有因子的之。(提示:循环中对所有可能成为该数因子的数进行考察,如果是因子,累加。 )
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
(*)一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编写程序计算30天后陌生人给了百万富翁多少钱,百万富翁给了陌生人多少钱?这个换钱计划对百万富翁是个划算的交易吗?
(*)现在北京有一套房子,价&#万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子? (答案会让人很悲观。不过房价这样涨,是不正常的,总有泡泡吹破的一天。)
【本文正文】
  (一)先做一个简单程序:f=1+2+...+9
  这太简单了!
int main()
const int n=9;
//把9定义成常变量,这是个好办法,增强可读性、可维护性,见P30,讲过
//本题求值后,f为整数,所以用int型。要根据情况选数据类型。i将用于控制循环,用int
//赋初值很重要,也可以定义的同时初始化。有同学算出了莫名其妙的和,因为没有赋初值
for(i=1;i&=n;i++)
//请深刻理解for有运行机制,要习惯于这种思维
}[小评论,为了解本题目求解过程的读者,直接跳到(二)]
  在这段程序中,for可以有各种其他写法,但惟有此为最佳:i控制了循环的次数(理解为何叫计数型循环)。我们将i称作为循环变量。在for(;;)中两个分号隔开的三部分中,分别只给循环变量赋初值、判断是否结束循环、循环变量调整,其余的任何操作统统放到别的地方去做。例如此处,为f赋初值放在循环前、累加的工作作为循环体。除些之外,别的写法,如for(f=0,i=1;i&=n;i++) f=f+i;
  或f=0,i=1;
for(;i&=n;i++) f=f+i;  或
for(f=0,i=1;i&=n;f=f+i,i++);
for(;i&=n;)
}  之流的,还可以写出无数,都是不利于理解的写法。
  再欣赏一下正宗的for循环,想想前面的形式,那是什么东西!?最清晰、最好的写法是:
for(i=1;i&=n;i++)
  (二)题目再变复杂些:f=1-2+3-4+...+9
int main()
const int n=9;
int i,f,sign=1;
//引入sign用于待加式子的符号变换
//赋初值很重要
for(i=1;i&=n;i++)
//因为循环体中将出现多条语句,加{}使之成为一条复合语句
f=f+sign*i;
//这个技术很重要,相比求幂,效率提高很多
  从这个例子中,我想强调:设计程序时,每一个变量的含义必须明确,不要试图让一个变量承担过多的角色。有些同学的变量用得很乱,碰巧得到正确的结果,有时还沾沾自喜,孰料其中存在大大的隐患。
  sign变量的名字也再次告诉我们,变量起名时,要尽量起有意义的名字,尤其其中几个变量间的关系微妙时。小程序中常用n、i、f之类的,其实并不是好习惯。想想dTax、fNetIncome,何等的清楚。
  (三)还再变复杂些:f=1-1/2+1/3-1/4+...+1/9。
int main()
const int n=9;
int i,sign=1;
//为什么换类型了?算下来f是小数,还用整型那不找错吗?
for(i=1;i&=n;i++)
f=f+sign*double(1)/i;
//这儿涉及类型转换,下面将深入讨论
//sign只用作控制符号,不作他用,欣赏一下
  关于类型,因为i为int型,如果直接1/i结果为int型,因为i≥1,从第2次循环开始(i=2),f就一直累加0了,多么可怕的一个潜在Bug。也可以写作1/double(i),但不能是double(1/i),已经求得商为0了,再double有何用,无法起死回生了。从语句整体,写成f=f+sign/double(i);更好。
  在同学学愿意将i用作double型或float型,这样f=f+sign*1/i;或f=f+sign/i;都行。但是i是用于计数的(顺便做了除数而已)这个含义将被削弱。我个人还是不赞同这样做,尽管需要进行强制类型转换。
  (四)在(二)的基础上再做次复杂化:f=1!-2!+3!-4!+...+9!
  增加一个变量a用于表示等待累加的阶乘值,显然,在累加3!时,上一循环计算得到的阶乘a为2!,a*3即是要加的3!。
int main()
const int n=9;
int i,f,a,sign=1;
//引入sign用于待加式子的符号变换
//累加和的初值取0
//累乘积的初值取1
for(i=1;i&=n;i++)
f=f+sign*a;
//将阶乘加上去,不要试图将求幂也写到一个语句中,那样的程序没法读了
  (五)到此应该知道:将(三)和(四)结合起来就是我们要的结果了!
  计算:f=1-1/2!+1/3!-...+1/9!
#include &iostream&
int main()
const int n=9;
int i,a,sign=1;
//再说一点,很多同学将这两个语句写在一行,没错,但不好
for(i=1;i&=n;i++)
f=f+sign*double(1)/a;
  (六)用其他的循环语句完成求解
  *********************用while循环实现************************
  给出循环:
for(i=1;i&=n;i++)
f=f+i;  对应的while循环是:
while(i&=n)
}  仍然是一个漂亮的计数!只不过将要做的事情在合适的位置上安排好罢了。
  用while实现计算f=1-1/2!+1/3!-...+1/9!的程序是
#include &iostream&
int main()
const int n=9;
int i,a,sign=1;
i=1; //对应原先for循环中的&表达式1&,—— for(i=1;i&=n;i++)
while(i&=n)
//循环条件是原for循环中的&表达式2&,—— for(i=1;i&=n;i++)
f=f+sign*double(1)/a;
//不要漏下原for循环中的&表达式3&,—— for(i=1;i&=n;i++)
  *********************用do-while循环实现************************
  给出循环:
for(i=1;i&=n;i++)
  f=f+i;  如果能够保证循环体至少能执行1次,对应的do-while循环是:
while(i&=n);  换汤不换药,关键在于,对这种循环的运行过程要了然于胸。
  for循环和while循环的循环体允许一次都不执行,如果循环条件一开始就不满足。而do-while循环的循环体则最少执行一行。为此,有些问题用do-while写时就有其特点了,此处不表。
  用do-while实现计算f=1-1/2!+1/3!-...+1/9!的程序是:
#include &iostream&
int main()
const int n=9;
int i,a,sign=1;
i=1; //循环的初始条件
f=f+sign*double(1)/a;
//循环变量的变化写在循环体内
}while(i&=n);
//确定在何条件下循环可以继续
  (七)题目的扩充,求f=1-1/2!+1/3!-1/4!+...,要求精度达到0.0000001
  在数值求解时,常常并不限定累加的项数,而是用精度控制。
  上述题目的意思是:利用循环累加9次,或者说,累加,直到加了第9项。
  现在的问题是:需要加几次不知道,但最后一项小于0.0000001后就不再加了。或者说,累加,直到要加的项小于0.0000001。
  当累加的项数不确定时,建议直接用while的思维考虑这个问题。
  用伪代码表示这个思路:
累加的项item初值为1;
while(item & 0.0000001)
执行累加任务;
  读者可以再细化算法。对应的C++程序是:
#include &iostream&
int main()
const int n=9;
int i,a,sign=1;
//要加的项
while(item & 0.0000001)
item = double(1)/a;
【部分练习参考例程】
一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编写程序计算30天后陌生人给了百万富翁多少钱,百万富翁给了陌生人多少钱?这个换钱计划对百万富翁是个划算的交易吗?
#include&iostream&
int main()
int days=1;
double m2fs=0, f2ms=0; //总额,m2f--陌生人to富翁
double m2f=100000, f2m=0.01; //每天应付数额
while(days&=30)
m2fs=m2fs+m2f;
f2ms=f2ms+f2m;
cout&&&第&&&days&&&天,陌生人给百万富翁&&&m2fs&&&元,百万富翁给陌生人&&&f2ms&&&元。&&&
if(m2fs&f2ms)
cout&&&陌生人吃亏。&&&
cout&&&百万富翁吃亏。&&&
建议:此程序中变量的取名可以借鉴一下。
题目:现在北京有一套房子,价&#万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子?&
#include &iostream&
int main()
double house_price=200, money = 40;
int year=1;
const double rate = 0.1;
const int salary = 40;
while(money & house_price)
cout&&year&&& &&&money&&&
&&&house_price&&
house_price*=(1+rate);
思考:(1)程序会进入列限循环直至出错(这是求解结果让人沮丧的事情),如何让程序能在合适的时候停下来?(2)如果&rate = 5%,结果会如何?
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2624649次
积分:50801
积分:50801
排名:第26名
原创:1705篇
转载:10篇
评论:5587条
难度:高级
类型:实战教学
难度:初级
类型:技术教程
难度:初级
类型:技术教程
文章:453篇
阅读:844706
文章:446篇
阅读:984312
文章:11篇
阅读:19602
迂者自勉:
※能取得一点点突破,就是进步
※并肩学生与不良学风坚决斗争
※甘为草根,仰慕草根之力量
※还原大学和大学学习之本色
∞心系教育,热爱生活
∞我的专栏-
∞给我写信
∞不用QQ-它会谋杀整段的时间
友情链接:周兆熊为IT学子解惑、
(1)(45)(37)(107)(123)(64)(82)(78)(27)(43)(30)(15)(9)(13)(24)(43)(65)(60)(13)(16)(63)(56)(41)(18)(29)(10)(28)(32)(43)(46)(7)(10)(59)(83)(51)(38)(20)(32)(15)(22)(30)(28)(16)(4)(38)(1)已知f(x+1)=x^2-x+1 求f(x), 求过程求解求方法_百度知道
已知f(x+1)=x^2-x+1 求f(x), 求过程求解求方法
提问者采纳
换元法,令x+1=t, x=t-1f(t)=(t-1)^2-(t-1)+1f(t)=t^2-3t+3所以f(x)=x^2-3x+3
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
设x+1=t, 那么x=t-1所以f(t)=(t-1)^2-(t-1)+1=t^2-3t+3所以f(x)=x^2-3x+3 希望能帮到你,呵呵
令x+1=t,则x=t-1所以f(t)=(t-1)^2-(t-1)+1=t^2-3t+3所以f(x)=x^2-3x+3
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁《财务管理》求解过程:最好能把公式写出来_百度知道
《财务管理》求解过程:最好能把公式写出来
一个投资方案年销售收入300万元,年销售成本210万元,其中折旧85万元,所得税税率40%,则该方案的年现金净流量为?
提问者采纳
每年现金流量=年营业收入-年付现成本-所得税=税后净利+折旧所以题目答案为=300-(210-85)-(300-210)*40%=(300-210)*(1-40%)+85=139这道题需要注意的是它给你的销售成本中是包含了折旧的,所以在带入公式中的时候要注意将付现成本算出来:付现成本=总成本-非付现成本(折旧、摊销),非付现成本不是真实的现金流,所以要将其扣除。
提问者评价
来自团队:
其他类似问题
为您推荐:
财务管理的相关知识
其他1条回答
300-210-85-(300-210-85)*40%=3
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 cfd求解过程 的文章

 

随机推荐