USTC 001139


Mathematical Modeling


图形与几何计算实验室 (Graphics&Geometric Computing Laboratory)

中国科学技术大学 (University of Science and Technology of China)


课程信息     课程简介     课程目标     课程安排    作业要求    其他资源



  • 2023年5月26日:【课件】今日课程课件已上传

  • 2023年5月19日:【课件】今日课程课件已上传

  • 2023年5月19日:【作业4批改】作业4优秀报告已上传

  • 2023年5月12日:【期末大作业】deadline is 2023年5月28日晚

  • 2023年5月5日:【作业4】微分方程模型,deadline is 2023年5月14日晚

  • 2023年5月5日:【课件】今日课程课件已上传

  • 2023年5月5日:【作业3批改】作业3优秀报告已上传

  • 2023年4月28日:【课件】今日课程课件已上传

  • 2023年4月21日:【课件】今日课程课件已上传

  • 2023年4月14日:【作业3】数据拟合,deadline is 2023年4月30日晚

  • 2023年4月14日:【课件】今日课程课件已上传

  • 2023年4月14日:【作业2批改】作业2优秀报告已上传

  • 2023年4月07日:【课件】今日课程课件已上传

  • 2023年3月31日:【课件】今日课程课件已上传

  • 2023年3月24日:【作业2】矩阵分解,deadline is 2023年4月9日晚

  • 2023年3月24日:【课件】今日课程课件已上传

  • 2023年3月24日:【作业1批改】作业1优秀报告已上传

  • 2023年3月17日:【作业1-ddl更新】图像颜色变换,deadline is 2023年3月20日晚

  • 2023年3月17日:【课件】今日课程课件已上传

  • 2023年3月11日:【作业1】图像颜色变换,deadline is 2023年3月19日晚

  • 2023年3月11日:【课程资料】科大睿客网链接,包括课程PPT、课程作业、数学建模样例等。

  • 2023年3月10日:建模论文(作业报告)模板(含Word和LaTeX的两个模板)

  • 2023年3月10日:数学建模优秀论文样例

  • 2023年3月10日:【Matlab系统练习】精心设计的3个Matlab练习,务必一个一个独立练习,能很快提升Matlab的使用经验。下载链接

  • 2023年3月10日:【Matlab学习资料】学习Matlab的一些学习资料。下载链接

  • 2023年3月10日: 【Git学习资料】Git是当前使用比较多的版本控制软件,类似于以前的SVN (Subversion) 软件。建议同学们使用Git来维护代码、文档、资料等的版本管理及共享资料(方便团队合作)。下载链接

  • 2023年3月10日:【课外小练习】 画图小程序MiniDraw,用于初步了解和学习C++对象的继承和多态特性。

  • 2023年3月1日:【课前练习(作业0)提交时间】2023年3月5日星期日23:59;

  • 2023年3月1日:【作业递交系统】作业递交系统    作业递交系统注册使用说明

  • 2023年3月1日:【学生ID号】学生课程ID号

  • 2023年1月31日:【课前练习(作业0)】已发送课前热身编程练习

  • 2023年1月30日:【课程主页】本课程的主页已搭建并发布




  •  Mathematical models describe a variety of real-world situations, providing unique information and insight. Systems that can benefit from modeling range from daily occurrences (e.g. optimizing campus parking) to highly complex interactions (e.g. predicting weather) to currently theoretical scenarios (e.g. computing the best vaccination or treatment strategy in case of bioterrorist attack).
        Mathematical modeling is a mathematical tool for solving real world problems. In this course, students study a problem-solving process. They learn how to identify a problem, construct or select appropriate models, figure out what data needs to be collected, test the validity of a model, calculate solutions and implement the model. Emphasis lies on model construction in order to promote student creativity and demonstrate the link between theoretical mathematics and real world applications.
        Throughout this semester, we study a variety of modeling types. Topics include proportionality models, fitting models to data, creating simulations, dimensional analysis, probabilistic modeling, optimization, and both discrete and continuous models. For day-to-day details, see the calendar pages of our class website.
        Additionally, students work in small groups on a semester-long modeling project. Early-semester activities include discussions of possible project ideas, a workshop on technical writing, project proposals, and brief presentations in class. Later activities include individual group meetings, peer-reviewed rough drafts, and longer final presentations to the class.

Mathematical Modeling is an area of applied mathematics that uses mathematical tools for exploring and studying "real world" problems. The overall objective of this course is to provide an introduction to the process of mathematical modeling while giving students an opportunity to

  • develop and construct appropriate models for various problem situations,
  • analyze given models to uncover underlying assumptions, and
  • investigate particular problems to find out what has already been done toward developing solutions.
Through work on assigned projects, students increase their fluency in technical reading and writing, and develop skills in mathematical problem solving. Students learn to
  • use the modeling process to translate problem situations to mathematical expressions,
  • use a variety of mathematical resources and tools to study problem situations, and
  • use appropriate technology to assist in the problem-solving process.

Beyond the content of individual courses, the major in mathematics is designed to prepare students for the 21st century by helping students to become problem solvers, effective communicators, users of appropriate technology, and team players. In this course, students will be engaged in a variety of activities which will help them to move toward achieving these goals.

  • As problems solvers, students will be learning to:
    • identify key points in a problem situation,
    • generate alternative strategies, critically analyze these strategies, and make decisions regarding appropriate strategies to use in the situation,
    • implement a variety of problem-solving strategies,
    • evaluate and transform mathematical expressions,
    • integrate information from a variety of sources (e.g., teachers, textbook, library, peers, technology, other courses, your own exerimentation and observations, and life experience), and
    • solve problems using the tools of mathematical analysis,
    • demonstrate being a problem solver by working with some problems that are relatively large.


  • As effective communicators, students will be learning to:
    • communicate effectively to different audiences (e.g., your peers, small group conversation, large group discussion),
    • read and interpret mathematics and technical information,
    • express ideas in mathematical language using written notation,
    • demonstrate active listening skills,
    • listen to others in the group,
    • use oral and written English in an appropriate and effective manner, and
    • paraphrase, explain results, and support your ideas.


  • As users of appropriate technology, students will be learning to:
    • make appropriate decisions about when and how to use technology in problem-solving situations, and
    • use the computer as a tool to study problem situations.


  • As team players, students will be learning to:
    • work effectively as a member of a team,
    • identify her/his own strengths and weaknesses as part of a team,
    • work cooperatively in a small group to explore and learn important ideas and concepts of calculus, and
    • acknowledge alternative points of view and problem-solving strategies.

    In this course, projects give students an opportunity to apply the principles of mathematical modeling creatively in various problem scenarios. While each project is related to the mathematical strategies that covered in class activities and lecture, students are expected to do some reading beyond the textbook and some library research to gain a solid background understanding of the problem scenario. Students are be expected to use appropriate technology as they study the problem, and to include the results of their investigations in a written report.

    Each year in early February, there is an international Mathematical Modeling Contest. A secondary objective of this course is to assist students in developing skills to participate in this contest. The skills needed to participate in the math modeling contest -- working cooperatively in a group, developing and carrying out a problem-solving plan, using whatever resources are available, collecting appropriate data -- are essential in today's competitive job market.


  • 课程安排































































    • 参考教材(教材仅供参考,以上课内容为主):



    • Readings:

         数学建模优秀论文 样例
          Various journal, conference, or WWW materials as appropriate.




    • All students are expected to study the relevant portions of the textbook and handouts in conjunction with our class discussions (i.e., before coming to class). Explicit reading assignments will not always be given.
    • As a matter of courtesy, students are expected to turn off cell phones and laptops during class. If extraordinary circumstances require an exception to this policy, the student is expected to discuss this with the instructor before class begins.
    • All students are suggested to master one of the following tools: C/C++ programming, Mathlab, Mathematica, or Maple etc.

    Assignment Submission

    • All students are expected to complete their homework assignments by their due dates.
    • Submission stuffs
      Your ID number, your name, the assignment number or name, source codes, related document
    • Grading of programming assignments will be based on the following criteria:
      1. Correctness of program.
      2. Output from program that adequately demonstrates correctness.
      3. Documentation, internal and external, included as standards.
      4. Efficient use of algorithms and appropriate data structures.
      5. Stress - program must function correctly under all and/or extreme and unusual combinations of input.
      6. Creativity - credit for innovation in interface, implementation, style, etc.
    • Late Work
      No late work will be accepted. If you know you will miss a test due to an excused absence, you must contact me ahead of time to schedule a make-up session.
    • Late programming assignments follow the following rules:
      25% deduction for 1-day late
      50% deduction for 2-day late
      Not accepted after being 2-day late
      Regarding your marks, contact the grading TA within two weeks after the assignment is handed back. After this two-week period, your assignment stays as it is graded.

    What constitutes Creativity ?

    Creativity is any substantial improvement beyond the basic solution - it can be applied to any part of the project. For example, the following are relevant in most cases :

    • User Interaction
      ̶  It would be nice to present the user with options to either test the program using internal tests or an interactive interface
      ̶  Work around limitations in the program. For example, if the program asks for lines of input and quits when it sees "X", invent a special syntax (called an escape sequence) to allow the user to type in "X" without the program exiting. Hypothetically, if the user enters $X the program interprets it as X, if the user enters $$ the program interprets it as $ and if the user enters X the program exits.
    • Visualization
      ̶  A representation of how data is actually being stored in the data structure, by specific position and value (this would even help greatly with debugging) - this could be accomplished with specialized data access routines for output formatting
    • Testing
      ̶  Simulating real-world conditions for input by making some assumptions about the distribution of operations performed and the rate of operations, then simulating using random number generators
      ̶  Intensively testing creation, usage and destruction of the data structure to prove there are no memory leaks
      ̶  Exhaustive automatic testing - go through many (or every) possible scenarios for the data structure (up to some time limit). For example, assign "add" and "remove" to a binary variable - then generate all possible strings of operations - test the structure for each case, and test the results automatically in your main program to make sure they are what was expected.
      ̶  Develop a syntax for file-based testing and use this as an option - eg. "enter X" and "retrieve"
    • Efficiency
      ̶  Minimize the number of allocations of memory blocks by reusing deleted blocks
      Ask yourself these questions ...
      ̶  How can I make the interface more natural ?
      ̶  How can I make the program run faster ?
      ̶  How can I use less memory/disk space ?
      ̶  Have I thoroughly tested my program ? Will my program survive real-world tests ? Will my program survive worst-case scenario tests ?


    Professional Conduct

    As a student in our class, you are expected to conduct yourself in a professional manner.

    Limited Collaboration Policy. Unless otherwise indicated, any homework assignment or programming exercise given in this class will be an individual assignment. The work you submit is to reflect the knowledge, understanding, and skill that you have attained as an individual. However, the instructor does want to encourage the development of a community of scholars who are actively engaged in discussion of the ideas related to this course. With this in mind, you are allowed to discuss solutions of the homework and programming problems with other students if done so according to the following guidelines:

    • You may discuss ideas for homework and programming assignments with your classmates. However, you cannot collaborate on writing the solution or the program code. That is, you can talk about the problems and ideas for solving them, but you cannot write things down with anyone else. You are, of course, prohibited from copying or seeing another student's written solution, and you are not allowed to show your work to anyone else.
    • You should accept help with care. If you work too closely with another student, you might mislead yourself into believing that you understand the concepts and techniques better than you actually do. Don't forget that the instructor has office hours and can probably give you hints or suggestions to get you started.
    • You should give help with care. Do not help anyone too much. When you have solved a problem, it is tempting to just tell other students how you solved it. Instead, try to allow them to come to the solution on their own. Maybe give them a hint to help them get "over a hump." Remember that helping someone too much will hurt them in the long term if they can't work through problems on the exams by themselves. So avoid the temptation to do so. If you can't help other students without giving away the whole solution, direct them to see the instructor (who may or may not have a way to "edge" them toward the solution).
    • You are not obligated to help anyone. If you feel uncomfortable helping another student for any reason, please direct them to see the instructor.


    Resources of Mathematical Modeling

    Mathematical Tools

    Online C++ and coding resources



    Copyright © 2021 GCL , USTC