当前位置: 首页 > news >正文

非有限结果matlab,在MATLAB中求解非线性有限元

我试图用MATLAB中的节点热源解决四面体有限元上的热扩散问题,这取决于解向量 . 非线性方程系统如下所示:

BU'AU = q(T)

B是热容矩阵,A是电导率矩阵,q是源项,U是温度 . 我使用Adams-Bashforth / Trapezoid Rule预测器 - 校正器方案,Picard迭代后跟时间步长控制 . 源项的温度精确地在最后一个时间步的温度和预测器的温度之间进行评估 . 这是预测器 - 校正器代码的简化版本 . 源的计算是一个函数 .

% predictor

K0 = t(n)-t(n-1);

Upre(dirichlet) = u_d_t(coordinates(dirichlet,:));

Upre(FreeNodes) = U(FreeNodes,n) + (dt/2)*((2+dt/K0)*U_dt(FreeNodes,3) - (dt/K0)*U_dt(FreeNodes,1)); % predictor step

Uguess = Upre; % save as initial guess for Picard iteration

% corrector with picard iteration

while res >= picard_tolerance

T_theta = Uguess*theta + (1-theta)*U(:,n);

b = q(T_theta);

% Building right-hand side vector (without Dirichlet boundary conditions yet)

rhs = ((2/dt)*B*U(:,n) + B*U_dt(:,1))+b;

% Applying Dirichlet Boundary Conditions to the Solution Vector

Ucor(dirichlet) = u_d_t(coordinates(dirichlet,:));

rhs = rhs - ((2/dt)*B+A)*Ucor;

% Solving the linearized system using the backslash operator

% P*U(n+1) = f(Un) => U(n+1) = P\f(Un)

Ucor(FreeNodes) = ((2/dt)*B(FreeNodes,FreeNodes)+A(FreeNodes,FreeNodes))\rhs(FreeNodes);

res = norm(Uguess-Ucor);

Uguess = Ucor;

U(:,n+1) = Ucor;

end

如您所见,我使用反斜杠运算符来解决系统问题 . 系统的非线性不应该是坏的 . 然而,随着时间步长的增加,picard方法收敛得更慢并最终停止收敛 . 我需要更大的时间步骤,所以我将整个校正器步骤放入一个函数中并试图用fsolve解决它,看看我是否实现了更快的收敛 . 不幸的是,fsolve似乎从来没有完成第一次 . 我想我没有正确配置fsolve的选项 . 任何人都可以告诉我,如何为大型稀疏非线性系统配置fsolve(我们正在讨论数千到数十万个方程) . 或者对于这个问题,是否有比fsolve更好的解决方案?帮助 - 由于我不是专家或计算工程师 - 非常感谢明确的建议!

相关文章:

  • 关于自动化测试的一些思考。
  • php微信小程序选项跳转,实现微信小程序路由跳转指定页面的代码实例
  • matlab图源代码,[转载]常用的一些图像处理Matlab源代码
  • 奇虎郑文彬:还原系统保护技术原理和攻防
  • php websocket class,server.php
  • 腾讯李旬保:WASL-Web应用安全的思考
  • java哈希映射干什么的,java 弱哈希映射表WeakHashMap原理
  • Java多线程Jdbc,java - jdbctemplate.batchupdate是多线程还是并发? - 堆栈内存溢出
  • 微软禇诚云:软件安全漏洞与软件开发
  • php怎么将二维数组倒置,如何在PHP中旋转二维数组90度
  • php小项目实例试题,lamp小项目实施题目及参考答案
  • 中移动为何惧怕Nokia和iPhone
  • 男人30学php,科学网—男人30岁之前要学的16件事 - 刘石泉的博文
  • php动态远吗怎么修改,PHP动态修改GD库扩展问题
  • 猫扑视频未被处罚,此猫扑非彼猫扑
  • Android组件 - 收藏集 - 掘金
  • Electron入门介绍
  • k8s如何管理Pod
  • Laravel Telescope:优雅的应用调试工具
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python 学习笔记 - Queue Pipes,进程间通讯
  • SOFAMosn配置模型
  • spring boot 整合mybatis 无法输出sql的问题
  • vue脚手架vue-cli
  • 第2章 网络文档
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 批量截取pdf文件
  • 前端相关框架总和
  • 首页查询功能的一次实现过程
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • scrapy中间件源码分析及常用中间件大全
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​Java并发新构件之Exchanger
  • # include “ “ 和 # include < >两者的区别
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (三分钟)速览传统边缘检测算子
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .net Application的目录
  • .net core 6 集成和使用 mongodb
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .Net下的签名与混淆
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @Responsebody与@RequestBody
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • []error LNK2001: unresolved external symbol _m
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [DevEpxress]GridControl 显示Gif动画
  • [ES-5.6.12] x-pack ssl
  • [HDOJ4911]Inversion
  • [Leetcode] Permutations II
  • [one_demo_15]模拟交通灯管理系统
  • [Ubuntu] 运行.AppImage格式文件
  • [uni-app] 防重复点击处理 - 自定义指令