当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-02-16 23:27 

注册: 2013-02-16 23:16
帖子: 2
系统: Win7+Ubuntu12.04
送出感谢: 0 次
接收感谢: 0 次
表达式中, d,c1,c2,c3,c4,c5,c6,c7都是已知数,请教各位大虾,该如何计算T的值?
其中, ln(T) 可通过数学函数 log(T) 计算.


附件:
文件注释: 表达式中, d,c1,c2,c3,c4,c5,c6,c7都是已知数,该如何计算T的值?
t.jpg
t.jpg [ 22.76 KiB | 被浏览 1854 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-02-16 23:39 
头像

注册: 2010-06-16 1:05
帖子: 14668
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
数学家在哪里。。。
我数学不好= =:(


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-02-17 0:06 

注册: 2012-11-11 20:08
帖子: 40
系统: mavericks
送出感谢: 0 次
接收感谢: 3
牛顿切线法?


_________________
换白苹果后。。配置都不会写了。。
处理器:
内存:
显卡:
声卡:
无线网卡:
有线网卡:
系统:
MacOS 10.9


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-02-17 8:52 
头像

注册: 2009-07-25 1:57
帖子: 701
送出感谢: 5
接收感谢: 13
要算法还是软件还是库?
算法可以参考http://en.wikipedia.org/wiki/List_of_algorithms 中2.5.8节的Root finding 一节相关介绍。(要实际应用不要自己去写这类算法。)
库的话可以读下 GNU Scientific Library (or GSL )的manual,至于软件,几乎所有数学软件都有相关部分,搜下manual


_________________
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-02-17 9:05 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
……用万能的牛顿法。
对于这道具体的题目,导函数算是已知的,好写多了。


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-02-17 23:21 

注册: 2013-02-16 23:16
帖子: 2
系统: Win7+Ubuntu12.04
送出感谢: 0 次
接收感谢: 0 次
谢谢大家的帮助,这个公式已经通过牛顿迭代法解决了,下面是C语言代码片段:

double f(double c1, double c2, double c3, double c4, double c5, double c6, double c7, double d, double T)
{
return (c1 + c2*T + c3*pow(T,2) + c4*pow(T,3) + c5*pow(T,4) + c6*pow(T,5) + c7*log(T)*T - d*T);
}

double f1(double c2, double c3, double c4, double c5, double c6, double c7, double d, double T)
{
return (c2 + 2*c3*T + 3*c4*pow(T,2) + 4*c5*pow(T,3) + 5*c6*pow(T,4) + c7*log(T) - d);
}

double newton_ddf()
{
double T;
doubel eps;

T = (double)473.15; // 初值设定很重要
eps = 1E-5;
//初始化c1,c2,c3,c4,c5,c6,c7,d

// 原始表达式 : d= c1/T + c2 + c3*T + c4*T^2 + c5*T^3 + c6*T^4 + c7*ln(T)
// 转换表达式1 : 0 = c1/T + c2 + c3*T + c4*T^2 + c5*T^3 + c6*T^4 + c7*ln(T) - d
// 转换表达式2 : 0 = c1 + c2*T + c3*T^2 + c4*T^3 + c5*T^4 + c6*T^5 + c7*ln(T)*T - d*T
do
{
T1 = T;
T = T1 - f(c1, c2, c3, c4, c5, c6, c7, d, T1) / f1(c2, c3, c4, c5, c6, c7, d, T1);
} while (fabs(T-T1) >= eps);


printf("T: %lf\n", T);


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-04-28 20:22 

注册: 2013-04-17 0:03
帖子: 23
系统: ubuntu和windows8和rhel
送出感谢: 0 次
接收感谢: 0 次
感觉是数值计算方法里的题目。。。一般用matlab编程,自动求解。。。


_________________
红颜易凋零,相知得常青。愿得一人心,白首不相离[color=#80BF00][/color]


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-04-28 20:42 
头像

注册: 2011-06-07 14:20
帖子: 3866
系统: Mint18
送出感谢: 17
接收感谢: 65
嗯,是我就用matlab


_________________
wiki: ubuntu 技巧


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求解T的值, 这个算法该如何解?
帖子发表于 : 2013-04-28 20:52 
头像

注册: 2010-10-07 14:23
帖子: 33999
地址: 某系某星某洲某国某省某市
系统: Archdows10
送出感谢: 29
接收感谢: 151
Fortran和mathematica...


_________________
心似浮云常自在,意如流水任东西。
此事背后一定有个天大的咪咪
广告:
1、走过路过,不要错过,dropbox网盘2.25G大放送
py大法好,退C保平安
java多妖孽,VB本异端
日诵一千遍,快活似神仙


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译